【发布时间】:2015-10-13 06:06:23
【问题描述】:
我需要这个查询从 REPORT 表中返回两个值,SUBJECT 和 ID_NUM。
正常选择主题,但只有在 IMS 表中的 SECRET 设置为 N 时才应选择 ID_NUM。
我通常会这样做
join on REPORT.ID_NUM = IMS.IR_ID_NUM
但在 SELECT 语句中,在指定 WHERE 表之前,我不确定如何在 SELECT 部分执行此操作。
SELECT SUBJECT,
--Check if secret before selecting values
--Secret column is in IMS table, value i want selected is in REPORT
CASE
WHEN (SECRET = 'N') THEN ID_NUM
ELSE 'SECRET' END
AS 'ID_NUM ',
FROM REPORT
INNER JOIN IMS ON ID_NUM = IR_ID_NUM
INNER JOIN IR_SUBJECT ON IR_ID_NUM = SUB_ID_NUM
【问题讨论】:
-
现在输出什么?
-
如果 ID_NUM 不是 char 或 varchar,则需要使用 cast 或 convert,因为在 else 情况下使用的是字符串
-
那么你现在查询的结果是什么?
标签: sql-server tsql