任何人都可以简化此查询

时间:2014-06-27 09:04:23

标签: sql sql-server

我有一张这样的表

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

我想从第一个城市或第二个城市为特定城市ID选择行。此外还假设我的城市ID为006。 我想要所有城市号都是006的记录。 但我不希望显示006。我只需要记录的其他城市号,无论它与Distance,roadName和Road Status是哪一列。 我试过的就是这个。

    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

任何人都可以告诉我如何实现这一目标。

2 个答案:

答案 0 :(得分:3)

试试这个

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

答案 1 :(得分:0)

试试这个:

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