2014-06-27 29 views
0

我有一個表像這樣任何一個可以簡化這個查詢

 FirstCity Secondcity Distance RoadName RoadStatus 
     008  007  4.600 A4  Good 
     008  020  4.400 A4  Good 
     005  008  4.300 A3  Good 

我想從第一個城市選擇一個特定的城市ID行或從第二city.Furthermore承擔我市ID是006。 我希望所有具有城市編號的記錄都是006. 但我不希望顯示006。我只需要記錄的其他城市號碼,而不管從距離,道路名稱和道路狀態欄中選擇。 我試過的是這個。

SELECT * FROM DirectNodes 
    WHERE FirstCity='008' OR SecondCity='008'; 

它給了我所有的五列。我只想要008沒有008的記錄的其他城市號碼。我的輸出應該是這樣的。

   City Distance RoadName RoadStatus 
       007  4.600 A4  Good 
       020  4.400 A4  Good 
       005  4.300 A3  Good 

誰能告訴我如何做到這一點。

+0

什麼意思: 「它給了我所有的四個記錄」?我的例子中只能看到3條記錄? – Jens

+0

@Jens編輯。希望你現在能理解它。 – Sahil

+0

@Jens如果你執行'SELECT'語句提到,你會得到4條記錄......但他預計只有3條記錄...... – Jesuraja

回答

4

試試這個

Select case when firstcity = '008' then secondcity else firstcity end 'City', 
     Distance,Roadname,Roadstatus 
from table 
where (firstcity= '008' or secondcity ='008') 
+0

是的,它工作正常。謝謝。 – Sahil

+0

然後通過勾選它來批准答案 – Azar

+0

@Azar我很感謝您的快速回答...好... – Jesuraja

0

試試這個:

SELECT CASE FirstCity WHEN '008' THEN SecondCity ELSE FirstCity END AS City, 
     Distance, RoadName, RoadStatus 
FROM  DirectNodes 
WHERE FirstCity = '008' OR SecondCity = '008' 
+0

爲什麼使用插入語句?Azar的查詢工作正常。 – Sahil

+0

我根據您的要求制定了一個示例(我在示例之前明確提到了「我嘗試過......」)。第一個陳述是答案,也沒有WHERE條件要求。你可以試試.. – Jesuraja

+0

@Sahil請現在檢查答案... – Jesuraja