Sql sorgusuna dinamik kolon ekleme

Muhammet Ali
21 Aralık 2016 Çarşamba
1

Merhaba Arkadaşlar

Güncel iş sürecinde karşılaştığım ve kullandığım yapıları sizlerle paylaşmaya devam ediyorum.Bu makalede belirli bir koşula göre elde edilen tabloyu sql query içerisine nasıl verebileceğimizi göreceğiz.

Kısaca senaryoyu anlatmak gerekirse,sp ye gönderilen tipi şeklinde bir int değişkenimiz var.Eğer gelen tipi :1 ise alan tablosu  eğer gelen tipi 1 den farklı ise :masa_sayisi  tablosuna göre aşağıdaki sql sorgusunun koşul kısmını değiştiricez.Sql koşulumuzu string şeklinde yazıyoruz çünkü sorgu içerisinde convert hatası alırız.İf koşulundan dönen tablo değerimizi sql sorgusunun içine aşağıdaki gibi veriyoruz.Exec ederek sonucumuzu alabiliriz.

declare @tablo varchar(20) ,@tipi int,@sql nvarchar(4000) ;
if @tipi=1 begin
		set @tablo='isy.alan'
		end
		else begin
		set @tablo='isy.masa_sayisi'
		end

set @sql='select detay.gunluk_ucr, detay.masa_ucr from eglisy isy
		inner join eglisytur tur on isy.isyturrecid = tur.recid 
		where gensicilno =838967  and isyeri_no =1 and
		('+@tablo+' between detay.baslangic and detay.bitis)'
							
EXEC sp_executesql @sql	

İyi çalışmalar.



yorumlar
64x64

Mert

29 Aralık 2016 Perşembe

Güzel paylaşım 👍

Yorum yaz