假设有一个包含2列的表和以下数据:
ID : 1,2,3,4,5,6,7,8
DATA:a,a,a,a,a,a,a,b
只有一行DATA = b,多行DATA = a。
我需要一个只会选择一行的查询。如果有任何行有DATA = b,那么我们将选择那个,如果没有DATA = b的行,那么它将选择DATA = a的第一行。
请帮助!!!!
答案 0 :(得分:1)
SELECT *
FROM table
WHERE DATA in ('A', 'B')
ORDER BY CASE WHEN DATA= 'B' THEN 0 ELSE 1 END, ID
FETCH FIRST 1 ROWS ONLY