2017-02-13 43 views
1

是否有可能根據條件返回所有行?例如:返回找到並找不到的行

SELECT 
* 
FROM 
TABLE 
WHERE 
USER IN ('A', 'B', 'C') 

在上述例子中,如果有一個用戶A,將只返回,B和C,如果C不存在的用戶將只返回2行,A和B.我想有3行,C有空。

謝謝。

+0

的CTE返回A,B和C行。外部加入該cte。 – jarlh

回答

1

你可以使用這個在這裏

SELECT 
    t1.[user], 
    t.* 
FROM 
(
    SELECT 'A' [user] 
    UNION ALL 
    SELECT 'B' 
    UNION ALL 
    SELECT 'C' 
) t1  
LEFT JOIN 
    table_name t 
ON t.[user] = t1.[user]; 
+0

感謝您的分享。 – Khrys

2

您可以LEFT優勢加盟..

WITH cte AS 
(SELECT 'a' AS user UNION ALL 
SELECT 'b' 
    SELECT 'c' 
) 
SELECT * FROM cte 
LEFT JOIN tablename ON yourcolumnName = user 
+0

感謝您的分享。 – Khrys