我在SQL方面是一个绝对的初学者。
例子:我想进行一次查询,选择名字以X开头的人如果结果为0,我想选择名字以Y开头的人。
我该怎么做?谢谢。
我在SQL方面是一个绝对的初学者。
例子:我想进行一次查询,选择名字以X开头的人如果结果为0,我想选择名字以Y开头的人。
我该怎么做?谢谢。
我将问题理解为:如果没有以X开头的名称,则显示以Y开头的名称。
这个解决方案会非常快速,因为一旦找到1条记录就能立即停止查询。
if exists(select * from table where name like 'X%')
begin
select * from table where name like 'X%'
end
else
begin
select * from table where name like 'Y%'
end
也许这是一个更好的解决方案:
select * from table where name like 'X%'
if @@ROWCOUNT = 0
select * from table where name like 'Y%'
SELECT *
FROM table
WHERE NAME LIKE 'X%'
UNION
SELECT *
FROM table
WHERE NAME LIKE 'Y%'
AND NOT EXISTS (
SELECT *
FROM table AS T1
WHERE T1.NAME LIKE 'X%'
);
有一些方法可以在单个SQL语句中执行此操作,但它们非常昂贵(无论是时间还是资源)。最好使用存储过程来执行这种逻辑。