【发布时间】:2020-09-11 17:06:18
【问题描述】:
SELECT
patientname, patientinsurance, patienthistory,
(CASE
WHEN patientinsurance IS NOT NULL THEN 'insured'
WHEN CDPrintBatchId IS NULL THEN 'uninsured'
END) AS insurancestatus
FROM
[dbo]..database
WHERE
admissiontime BETWEEN '2020-09-03' AND '2020-09-04'
所以对于我上面的查询,我想使用IIF 而不是CASE,因为我只想显示没有保险的患者,有什么正确的吗?因为如果我在我的案例场景中只使用一个案例,那么 null 应该会出现在我的 insurancestatus 列中,而不是 uninsurured。
SELECT
IIF(patient("Null") = 0, 'YES', 'NO');
基本上我只想在结果中显示 null 的结果,不包括 not null
【问题讨论】:
-
你的问题有点不清楚。请使用预期结果和示例数据示例更新您的问题。
-
天啊,我喜欢 IIF。这是今天最好的问题
-
case 语句比较两个独立的字段 - 但您的 IIF 示例正在测试一个条件。它看起来不像是您的 CASE 语句所做的直接逻辑替换。 CASE 语句有一个优先顺序,您不会在 IIF 语句中重复。您的 CASE 中也没有 ELSE。
-
I want to iif instead of case-> 为什么? -
当有标准 SQL 兼容的 CASE(更强大)时,为什么要使用专有语法(类似于 Oracle 的 DECODE),只是为了节省一些击键?
标签: sql sql-server case iif