返回找到但未找到的行

时间:2017-02-13 12:22:10

标签: sql sql-server-2005

是否可以根据条件返回所有行?例如:

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

在上面的例子中,只有当有用户A,B和C时它才会返回。如果用户C不存在,它将只返回2行,A和B.我想有3行,并且C空着。

感谢。

2 个答案:

答案 0 :(得分:2)

你可以在这里利用LEFT加入..

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

答案 1 :(得分: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];