说我有一个有三列的表,一个是b和c。 我想用这样的方式查询这个表有三个值:
选择a = value 1
的所有行如果这些行少于10行,则返回那些行,否则选择那些行中b =值2的所有行
重复c和值3
是否可以在单个查询中执行此操作?
答案 0 :(得分:0)
试试这个(假设是SQL Server):
SELECT TOP 10 *
FROM YourTable X
ORDER BY (CASE WHEN X.a = value1 THEN 0 ELSE 1 END),
(CASE WHEN X.b = value2 THEN 0 ELSE 1 END),
(CASE WHEN X.c = value3 THEN 0 ELSE 1 END)