示例表:
tableId otherValue
1 4
2 3
3 2
4 1
我根据tableId
按特定顺序选择数据 - 当值为1或2时返回,否则返回其他。现在我想基于otherValue
添加一个额外的排序参数。
如果使用CASE
,只需在ORDER BY
WITH TIES
之后添加,如下所示,将无法使用。
SELECT TOP 1 WITH TIES tableId, otherValue
FROM exampleTable
ORDER BY (CASE WHEN tableId IN (1, 2) THEN 1 ELSE 2 END), otherValue
有没有比外部查询更好的方法呢?
答案 0 :(得分:0)
这样的事情怎么样?
select * from exampleTable
where tableID in (1,2) or
not exists(select * from exampleTable where tableID in (1,2))
order by othervalue