如何检查 WHERE = value 是否不存在并默认为零?

Efe*_*fak 3 sql-server

我的目标是检查 lineId 的值是否存在。如果不是,则默认情况下它必须为零。这是我的数据:

在此输入图像描述

例如:

从表名中选择 lineId WHERE lineId = 80

没有lineId = 80,那么我想查看lineId = 0的记录。

谢谢,真诚的:)

ype*_*eᵀᴹ 6

另一种方法:

SELECT lineId 
FROM table_name 
WHERE lineId = 80

UNION ALL

SELECT lineId 
FROM table_name 
WHERE lineId = 0
  AND NOT EXISTS
      ( SELECT 1 
        FROM table_name 
        WHERE lineId = 80
      ) ;
Run Code Online (Sandbox Code Playgroud)

与 CTE 类似:

WITH cte AS
  ( SELECT lineId 
    FROM table_name 
    WHERE lineId = 80
  )

SELECT * 
FROM cte

UNION ALL

SELECT lineId 
FROM table_name 
WHERE lineId = 0
  AND NOT EXISTS
      ( SELECT *
        FROM cte
      ) ;
Run Code Online (Sandbox Code Playgroud)