【问题标题】:Return rows of found and not found返回找到和未找到的行
【发布时间】:2017-02-13 12:22:09
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • 有一个 cte 返回 A、B 和 C 行。与该 cte 进行外部联接。

标签: sql sql-server-2005


【解决方案1】:

您可以在此处利用 LEFT 加入..

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

【讨论】:

  • 感谢分享。
【解决方案2】:

你可以用这个

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];

【讨论】:

  • 感谢分享。
猜你喜欢
  • 1970-01-01
  • 2017-02-05
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-12-16
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多