İlginizi Çekebilir
  1. Ana Sayfa
  2. SQL

MSSQL İf Else Kullanımı

MSSQL İf Else Kullanımı
+ - 2

MSSQL İf Else Kullanımı dersim ile SQL eğitim setime devam ediyorum. Bu dersimde SQL üzerinde if else kullanımına bakacağız.

MSSQL İf Else Kullanımı

Bazen her şeyi C# ‘ta yapmak bize sadece kod hammallığı yaptırır. Bazı işlemleri sql e yaptırmak her zaman daha kolay gelir. Bu gibi durumlarda if else gibi işlemleri bilmemiz gerekir. düşünsenize tek bir prosedür içerisinde halledebileceğimiz şeyleri C# ile yapmaya kalktığımızda ne kadar çok uğraşmamız gerektiğini düşünün.

Şimdi SQL İf Else kullanımını bir örnek üzerinde görelim.

declare @deger char

select @deger = MinDegerUyari from Urunler where ID = 350

if @deger = 0
update Urunler SET MinDegerUyari = 1 where ID = 350
else
update Urunler SET MinDegerUyari = 0 where ID = 350

Select * from Urunler where ID = 350

Yukarıda bir if else örneği görüyorsunuz. Bu örnekte Urunler tablosundaki bir stun olan MinDegerUyari eğer 0 ise 1 yapacak 0 değil ise 0 yapacaktır.

Kodlarımızı açıklamamız gerekirse;

  1. Declare komutu ile atama yapacağımız değerimizi yani değişkenimizi tanımlıyoruz.
  2. Select komutu ile ID değeri 350 Urunler tablosunda değişiklik yapmak istediğimiz stunu declare komutu ile tanımladığımız @deger komutuna atıyoruz.
  3. Tanımladığımız @deger  değişkeni üzerinden if kontrolunu yaparak if else komutunu çalıştırıytoruz.
  4. Eğer @deger değişkinemizdeki değer 0 ise
    1. Urunler tablomuzdaki ID değeri 350 olan satırın MinDegerUyari kolonumuzu 1 olarak update ediyoruz.
  5. Eğer @deger değişkinemizdeki değer 0 değil ise
    1. Urunler tablomuzdaki ID değeri 350 olan satırın MinDegerUyari kolonumuzu 0 olarak update ediyoruz.
  6. Select sorgusu ile de yapılan değişikliği görebiliriz.

SQL if else kullanımı bu şekildedir. Ancak bunu fonksiyonlarda kullanamıyoruz. if Else işlemini sadece stored procedure içerisinde kullanabiliriz. Yada direk Query olarak çalıştırabiliriz. Bu konuda biraz sıkıntımız olsa da çok büyük bir problem değildir. Fonksiyon ya da stored procedure olması pek fark etmiyor yani… Amacımız işimizi en kolay ve kısa yoldan halledebilmek.


MSSQL İf Else Kullanımı dersimiz de  bu kadar arkadaşlar. Diğer derslerimizde görüşmek üzere.

Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.

Buradan C# Eğitim Setimde yayınladığım Github projeme ulaşabilirsiniz.

Sağlıcakla ve Takipte Kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

  1. 3 sene önce

    Merhaba kolay gelsin aşağıdaki komutta ben normalde 114932 satır çekmem gerekirken benim oluşturduğum tabloya yaklaşık 914852 stok geliyor ben burda neyi aksik yapmış ola bilirim.
    CREATE TABLE [dbo].[TAMERSERISTOKAKTAR]
    ([ID] [int] NOT NULL,[IND] [nvarchar](255) NULL,[SIRANO] [nvarchar](255) NULL,[MALINCINSI] [nvarchar](255) NULL,[STOKKODU] [nvarchar](255) NULL,[STOKTIPI] [nvarchar](255) NULL,
    [ANABIRIM] [nvarchar](255) NULL,[VARSAYILANBIRIM] [nvarchar](255) NULL,[DEPOSEVIYESI] [nvarchar](255) NULL,[DEPO] [nvarchar](255) NULL,[TEMINYERI] [nvarchar](255) NULL,
    [KOD1] [nvarchar](255) NULL,[KOD2] [nvarchar](255) NULL,[KOD3] [nvarchar](255) NULL,[KOD4] [nvarchar](255) NULL,
    [KOD5] [nvarchar](255) NULL,[KOD6] [nvarchar](255) NULL,[KOD7] [nvarchar](255) NULL,[KOD11] [nvarchar](255) NULL,[KOD12] [nvarchar](255) NULL,[KOD8] [nvarchar](255) NULL,[KOD9] [nvarchar](255) NULL,[KOD10] [nvarchar](255) NULL,
    [BIRIMADI] [nvarchar](255) NULL,[ACIKLAMA] [nvarchar](255) NULL,[ALISFIYATI] [nvarchar](255) NULL,[APB] [nvarchar](255) NULL,[MALIYET] [nvarchar](255) NULL,
    [KDVGRUBU] [nvarchar](255) NULL,[STATUS] [nvarchar](255) NULL,[ALISKDVORANI] [nvarchar](255) NULL,
    [SATISFIYATI1] [nvarchar](255) NULL,[SATISFIYATI2] [nvarchar](255) NULL,[SATISFIYATI3] [nvarchar](255) NULL,[SATISFIYATI4] [nvarchar](255) NULL,[SATISFIYATI5] [nvarchar](255) NULL,
    [PB1] [nvarchar](255) NULL,[PB2] [nvarchar](255) NULL,[PB3] [nvarchar](255) NULL,[PB4] [nvarchar](255) NULL,[PB5] [nvarchar](255) NULL,
    [BARCODE] [nvarchar](255) NULL,[RENKLER] [nvarchar](255) NULL,[RENKKODU] [nvarchar](255) NULL,[RENKADI] [nvarchar](255) NULL
    ) ON [PRIMARY]

    SELECT * FROM TAMERSERISTOKAKTAR

    INSERT INTO TAMERSERISTOKAKTAR
    (ID,IND,SIRANO,MALINCINSI,STOKKODU,STOKTIPI,
    ANABIRIM,VARSAYILANBIRIM,DEPOSEVIYESI,DEPO,
    KOD1,KOD2,KOD3,KOD4,KOD5,KOD6,KOD7,KOD11,KOD12,KOD8,KOD9,KOD10,
    BIRIMADI,ACIKLAMA,ALISFIYATI,APB,MALIYET,
    KDVGRUBU,ALISKDVORANI,
    SATISFIYATI1,SATISFIYATI2,SATISFIYATI3,SATISFIYATI4,SATISFIYATI5,
    PB1,PB2,PB3,PB4,PB5,
    BARCODE,RENKLER,RENKKODU,RENKADI)

    SELECT
    STOK.Id,STOK.Id,STOK.AnaStokId,STOK.StokAdi,STOK.StokKodu,STOK.StokTipi,
    STOK.AnaBirim,STOK.VarsayilanBirim,’1′,’1′,
    (select kod from CodeDB_1..OzelKodlar where kodno=1 and Id=STOK.ozelkod1 ) AS KOD1,
    (select kod from CodeDB_1..OzelKodlar where kodno=2 and Id=STOK.ozelkod2 ) AS KOD2,
    (select kod from CodeDB_1..OzelKodlar where kodno=3 and Id=STOK.ozelkod3 ) AS KOD3,
    (select kod from CodeDB_1..OzelKodlar where kodno=4 and Id=STOK.OzelKod4 ) AS KOD4,
    (select kod from CodeDB_1..OzelKodlar where kodno=5 and Id=STOK.OzelKod5 ) AS KOD5,
    (select kod from CodeDB_1..OzelKodlar where kodno=6 and Id=STOK.OzelKod6 ) AS KOD6,
    (select kod from CodeDB_1..OzelKodlar where kodno=7 and Id=STOK.OzelKod7 ) AS KOD7,
    (select kod from CodeDB_1..OzelKodlar where kodno=8 and Id=STOK.OzelKod8 ) AS KOD11,
    (select kod from CodeDB_1..OzelKodlar where kodno=9 and Id=STOK.OzelKod9 ) AS KOD12,
    STOK.StokKodu AS KOD8,CRENK.Adi AS KOD9,CBEDEN.Kodu AS KOD10,
    ‘ADET’ AS BIRIMADI,’FIYAT’ AS ACIKLAMA,BIRIM.Fiyat2,’TL’ AS APB,BIRIM.Fiyat2,
    ‘100’ AS KDVGRUBU,’8′ AS AKDVORANI,
    BIRIM.Fiyat1,BIRIM.Fiyat2,BIRIM.Fiyat3,BIRIM.Fiyat4,BIRIM.Fiyat5,
    ‘TL’ AS PB1,’TL’ AS PB2,’TL’ AS PB3,’TL’ AS PB4,’TL’ AS PB5,BRK.Barkodu,CRENK.Id,CRENK.RenkKodu,CRENK.Adi
    FROM
    CodeDB_1..Stoklar AS STOK
    LEFT JOIN CodeDB_1..Birimler AS BIRIM ON BIRIM.StokId=STOK.Id
    LEFT JOIN CodeDB_1..Barkodlar AS BRK ON BRK.BirimId=BIRIM.Id
    LEFT JOIN CodeDB_1..Renkler AS CRENK ON CRENK.RenkKodu=STOK.RenkKodu
    LEFT JOIN CodeDB_1..Bedenler AS CBEDEN ON CBEDEN.Kodu=STOK.BedenKodu

    • Merhaba,
      Öncelikle üzülerek belirtmeliyim ki verdiğiniz kodları dikkatlice inceleme şansım yok maalesef. Bu gibi sorunlar left join, inner join gibi join ifadelerinde rastlanılan bir durumdur.
      Join kısmını incelediğimde ikinci join olan barkodlar tablosunu, birimler tablosu ile eşlemiş olmanızdan dolayı kayıtlar çoğalmış olabilir.
      Burada sorgunuzdan dönen değerleri inceleyip neyin tekrar ettiğini incelemeniz gerekiyor. Neyin çok fazla tekrar ettiğine göre hangi tablo üzerinden yaptığınız eşleştirmelerin hataya sebep olduğunu bulabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.