Sql - 条件子查询

时间:2014-03-06 17:28:37

标签: sql

说我有一个有三列的表,一个是b和c。 我想用这样的方式查询这个表有三个值:

选择a = value 1

的所有行

如果这些行少于10行,则返回那些行,否则选择那些行中b =值2的所有行

重复c和值3

是否可以在单个查询中执行此操作?

1 个答案:

答案 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)