[英]Conditionally sql query
我有這個簡單的查詢
select * from users where name = 'User1'
我想擴展查詢的功能,無論查詢返回0記錄,查詢將通過其他子句獲取數據。
where name = 'Default'
如果第一個子句將獲取一些記錄,則第二個子句將被忽略。
編輯
神諭
SELECT * FROM users WHERE name = 'User1'
UNION ALL
SELECT * FROM users WHERE name = 'Default'
AND NOT EXISTS (SELECT 1 FROM users WHERE name='User1')
IF EXISTS (SELECT * from users where name = 'User1')
SELECT * from users where name = 'User1';
ELSE
SELECT * from users where name = 'Default';
select top 1 * from users where name in ('User1', 'Default') order by name desc
:P
WITH T AS (
SELECT users.*,
RANK() OVER (ORDER BY CASE WHEN name = 'User1' THEN 0 ELSE 1 END) AS RN
FROM users
WHERE name IN ( 'Default','User1')
)
SELECT * FROM T
WHERE RN = 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.