2016-04-08 19 views
0

ParametreKodu ve Değeri Satırları olan B tablosuna sahibim.Tablodaki tüm sütunlar nasıl seçilir Bir IF sütun adı başka bir tabloda belirtilir TSQL

Farklı Değişkenler sütunlarına sahip olan A tablosuna sahibim.

Ben B.ParameterCode (satır) (bu durumda kökenli) bir bir sütun adı eşleşirse bunu dönmek istiyorum B.

yılında ParameterCode değeriyle A'nın sütun adıyla eşleşen istiyorum.

Temel olarak, sütun adlarını satır değerlerinden nasıl arayabilir ve eşleştirebilirim?

Sadece basit bir şeyi unuttuğumdan eminim.

Tablo B Örnek:

DECLARE @B TABLE(ParameterCode VARCHAR(64), Value varchar(64)) 

INSERT @B VALUES ('Origin','SLC') 

Tablo A Örnek

DECLARE @A TABLE(
Origin varchar(100), 
Destination VARCHAR(100), 
Passengers int 
) 
insert into @A values 
('SLC','JFK','1') 

ve sadece köken seçilecektir.

Sonucu

Bir JOIN @B yapmak sonra tablo @A ilk UNPIVOT ve gerek
DECLARE @Result TABLE(
Origin varchar(100), 

) 
insert into @Result values 
('SLC') 
+0

açıklamanızı ve tablo adını tüm maç. Lütfen – Squirrel

+0

'u değiştirin, temel olarak iki tablodaki eşleşen satırları bulmak için 'INNER JOIN' kullanın. Veya başka bir tabloda bulunan bir satır bulmak için EXISTS ' – Squirrel

+0

Benim sorunum, bir tablonun sütun adı diğerinin satır değeri ile eşleştirmek istiyorum. –

cevap

1

: örnek değil de

SQL Fiddle

;WITH CteValues AS(
    SELECT x.* , a.Passengers 
    FROM @A a 
    CROSS APPLY (VALUES 
     ('Origin', Origin), 
     ('Destination', Destination) 
    )x(ParameterCode, ParameterValue) 
) 
SELECT cv.ParameterValue, cv.Passengers 
FROM CteValues cv 
INNER JOIN @B b 
    ON b.ParameterCode = cv.ParameterCode 
    AND b.Value = cv.ParameterValue 
İlgili konular