0

假设有一个包含 2 列和以下数据的表:

ID : 1,2,3,4,5,6,7,8
DATA:a,a,a,a,a,a,a,b

DATA=b 只能有 1 行,DATA=a 只能有多行。

我需要一个只选择一行的查询。如果有任何行 DATA=b,那么我们将选择该行,如果没有 DATA=b 的行,那么它将选择 DATA=a 的第一行。

请帮忙!!!!

4

1 回答 1

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
于 2013-09-10T09:29:32.897 回答