İçeriğe geç

SQL List Değişken Tanımlama

6.218 defa okundu

Konu: Veri Analizi

SQL List Değişken Tanımlama

MS SQL de scalar tek değer tutan değişken tanımlamanın yanı sıra çok boyutlu veya list değişkende tanımlayabiliriz. Bazı durumlarda SQL sorgu sonucu elde edilen veri setinin bir tabloya aktarmak ve bu tabloyu tek başına veya başka tablolar ile join yaparak kullanma ihtiyacı olabilir. Bazı durumlarda elde edilen sorgu sonucu INTO ile bir tabloya doldurulabilir. Ancak hem tablo oluşturma yetkisi gerekli hemde bu tabloları silmek gerekli olduğu için bu yöntem çoğu zaman kullanışlı bir yöntem değildir. Diğer bir yöntemde INTO #GECICI_TABLO_ADI ifadesi ile bir yerel geçici bir tablo oluşturmaktır. Bu geçici tablo kullanıcı oturumu kapatınca silinir. Bu yöntem kalıcı tablo oluşturma yönteme göre daha avantajlıdır. En ideal yöntem ise list tipinde bir değişken oluşturup, kullanmak böylece tablo oluşturma yetkisine ve fiziksel olarak tablo oluşturmaya ihtiyaç kalmaz.

List türü değişken olarak tanımladığımız tablolarımızı fiziki tablolarımız ile join gibi işlemler ile beraber kullanabiliriz.

SQL
  1. ---SCALAR DEĞİŞKEN
  2. DECLARE @ADI AS NVARCHAR(10)
  3. SET @ADI='DENEME'
  4. SELECT @ADI
  5. --SONUÇDENEME
  6. ---1 FİZİKİ TABLO
  7. SELECT ADI,SOYADI INTO TMP_TABLO FROM TABLO WHERE ID IN (1,2)
  8. SELECT * FROM TMP_SIL
  9. ---FİZİKİ GEÇİCİ TABLO OLUŞTURMA
  10. SELECT ADI,SOYADI INTO #TMP_TABLO FROM TABLO WHERE ID IN (1,2)
  11. SELECT * FROM #TMP_TABLO
  12. ---LİST DEĞİŞKEN
  13. DECLARE @MUSTERI TABLE (ID INT,ADI NVARCHAR(10),SOYADI VARCHAR(20))
  14. INSERT INTO @MUSTERI
  15. VALUES
  16. (1,'DENEME01','DENEK01') ,
  17. (2,'DENEME02','DENEK02') ,
  18. (3,'DENEME02','DENEK03')
  19. SELECT ID,ADI,SOYADI FROM @MUSTERI
ID ADI SOYADI
1 DENEME01 DENEK01
2 DENEME02 DENEK02
3 DENEME02 DENEK03

---SQL LIST VERI TIPI Aşağıdaki sorgular mutlaka Declare ifadeleri ile beraber çalıştırılması gerek.

SQL
  1. DECLARE @Gunler TABLE(Sira INT,Gun VARCHAR(40))
  2. DECLARE @GunlerEnglish TABLE(Sira INT,GunENG VARCHAR(40))
  3. INSERT INTO @Gunler
  4. VALUES
  5. (1,'Pazartesi') ,
  6. (2,'Salı') ,
  7. (3,'Çarşamba') ,
  8. (4,'Perşembe'),
  9. (5,'Cuma'),
  10. (6,'Cumartesi'),
  11. (7,'Pazar')
  12. INSERT INTO @GunlerEnglish
  13. VALUES
  14. (1,'Monday') ,
  15. (2,'Tuesday'),
  16. (3,'Wednesday') ,
  17. (4,'Friday'),
  18. (5,'Friday'),
  19. (6,'Saturday'),
  20. (7,'Sunday')
  21. SELECT * FROM @Gunler
Sira Gun
1 Pazartesi
2 Sali
3 Çarsamba
4 Persembe
5 Cuma
6 Cumartesi
7 Pazar
SQL
  1. SELECT * FROM @GunlerEnglish
Sira GunENG
1 Monday
2 Tuesday
3 Wednesday
4 Friday
5 Friday
6 Saturday
7 Sunday
SQL
  1. SELECT [@Gunler].Sira,Gun,GunENG
  2. FROM @Gunler
  3. INNER JOIN @GunlerEnglish ON [@Gunler].Sira=[@GunlerEnglish].Sira
Sira Gun GunENG
1 Pazartesi Monday
2 Sali Tuesday
3 Çarsamba Wednesday
4 Persembe Friday
5 Cuma Friday
6 Cumartesi Saturday
7 Pazar Sunday

Bu yazı işinize yaradı mı?

Veri Analizi konusundaki diğer yazılar

Veri Analizi: 17 yazının tümü →

WhatsApp'ta paylaş

İlgili Yazılar