我试图做到这一点,但失败了。
CASE
WHEN ACTIVITY_id in ('100003') and (activity_status=1002) THEN 'Sudah'
ELSE 'Belum'
END AS ISPENETAPAN
这是表格:
PERIOD_ID WORKFLOW_ID USER_FOLIO_ID ACTIVITY_ID ACTIVITY_STATUS PARENT_ACTIVITY_ID
2020 1 30167856 100001 1002 100004
2020 1 30167856 100002 1002 100001
2020 1 30167856 100003 1002 100002
2020 1 30167856 100004 1002 NULL
2020 1 30167856 100005 1000 100001
(这个结果肯定还没有(
PERIOD_ID WORKFLOW_ID USER_FOLIO_ID ACTIVITY_ID ACTIVITY_STATUS PARENT_ACTIVITY_ID
2020 1 30172023 100001 1002 100004
2020 1 30172023 100002 1000 100001
2020 1 30172023 100003 1001 100002
2020 1 30172023 100004 1002 NULL
2020 1 30172023 100005 1000 100001
案例:我想在SQL Server中制作一个CASE
,其中ACTIVITY_ID = 100003
有ACTIVITY_STATUS = 1002
,然后是'DONE'
,否则是'NOT YET'
似乎您失败的地方是通过放置Apostrope('(将ACTIVITY_ID
视为文本
CASE
WHEN (ACTIVITY_id = 100003 -- If this is Text, put '100003', otherwise no (')
AND ACTIVITY_STATUS = 1002) -- This is Numeric. The Parentheses help in the Filter Priority
THEN 'DONE'
ELSE 'NOT YET'
END AS ActivityResult;
注意:最好也放上括号,以帮助SQL Server对某些计算/筛选器进行优先级排序。
这个问题很清楚。
CASE
WHEN (activity_id = 100003 AND activity_status = 1002) THEN 'done'
ELSE 'not yet' END