簡體   English   中英

有條件的sql查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM