SQL:如何设置特定属性的优先级?

时间:2011-12-07 18:58:20

标签: sql sql-server

我想选择addressBook表的所有行,其中来自巴黎的地址将是第一个。

我可以使用一个T-SQL查询吗?

更新 试过marc_s解决方案, 但是当值是in参数而不是const'paris'时,我也能这样做吗? 我在'='

附近得到了错误的语法

2 个答案:

答案 0 :(得分:3)

是 - 确定:

SELECT  
    (some columns),
    SortOrder = CASE WHEN City = 'Paris' THEN 0 ELSE 1 END
FROM 
    dbo.addressBook
ORDER BY
    SortOrder

答案 1 :(得分:1)

一些解决方案:

  1. 2个相同的选择,首先是条件地址来自巴黎,第二个是条件地址不是来自巴黎和UNION和ORDER BY

  2. 在Select语句中,创建一个人工列,当来自巴黎时为0,否则为1,并且按此顺序

  3. 在表格中创建一个带有序数排序的新列和ORDER BY this

  4. 解决方案的选择取决于您的需求。我想说,从维护的角度来看,(3)是最好的。