2012-05-30 44 views
0

我需要選擇所有行,當且僅當它們對於sql服務器中的所有以下列具有值「Y」時。用於提取多列條件的T-SQL查詢

Bike_Racks_Lockers SHELTERS Telephone Lighting FENCES 

     N    N   Y   Y   Y      
     N    N   N   N   Y     
     N    N   N   N   N     
     Y    Y   Y   Y   Y     
     ?    ?   ?   ?   ?     
     N    N   N   N   N 

回答

2
select * from yourtable where Bike_Racks_Lockers = 'Y' and SHELTERS = 'Y' and 
Telephone = 'Y' and Lighting = 'Y' and FENCES = 'Y' 

編輯:

在這種情況下,執行單獨檢查,並插入到另一個表。例如:

insert into othertable selct * from yourtable where Bike_Racks_Lockers = 'Y' 

insert into someothertable selct * from yourtable where SHELTER = 'Y' 
+0

我需要Bike_Racks_Lockers ='Y'的數據,然後將它插入到另一個表中。與其他欄目類似。使用和在哪裏條件給我所有列的Y數據在一起。 – kpc

+0

@kpc,看我的編輯。 – Rahul

+0

這一個工作!謝謝。 – kpc

2

使用ColumnName='Y'爲每列在您的WHERE條款:

SELECT Bike_Racks_Lockers, SHELTERS, Telephone, Lighting, FENCES 
FROM [TableName] 
WHERE Bike_Racks_Lockers='Y' 
AND SHELTERS='Y' 
AND Telephone='Y' 
AND Lighting='Y' 
AND FENCES='Y' 

但是,說實話,我不能確定這個結果集的點會是什麼?

2
SELECT * 
FROM mytable 
WHERE Bike_Racks_Lockers = SHELTERS 
     AND Telephone = Bike_Racks_Lockers 
     AND Lighting = Bike_Racks_Lockers 
     AND FENCES = Bike_Racks_Lockers 
     AND Bike_Racks_Lockers = 'Y' 
+0

有沒有一個表現(或其他)的原因,爲什麼這是比拉胡爾更好的答案? –

+0

@Romil,不錯的主意,但'Bike_Racks_Lockers = SHELTERS' ...從SHELTER獲取值'Y'的位置? – Rahul

+0

我們正在檢查Bike_Racks_Lockers ='Y',因此它將檢查SHELTERS ='Y' –