简体   繁体   English

在情况表达式中返回NULL:SQL Server 2008

[英]Return NULL in case expression : SQL server 2008

I have following case statement for check result set, 对于检查结果集,我有以下案例说明:

SELECT
    CASE
    WHEN EXISTS(
           select CE_Issuedate from t_Certificate
           where CE_CertID_pk = (select IT_certID_fk_ind from t_item
                                 where IT_rfileID_fk = '1482'
                                 group by IT_rfileID_fk) 
    ) 
    THEN  (select CE_Issuedate from t_Certificate
           where CE_CertID_pk = (select IT_certID_fk_ind from t_item
                                 where IT_rfileID_fk = '1482'
                                 group by IT_rfileID_fk)) 
    ELSE  NULL
    END AS 'CE_Issuedate';

I want to return NULL when no result in this select statement. 当此选择语句中无结果时,我想返回NULL。 I tried like this but I'm not sure this is correct. 我尝试过这样,但是我不确定这是正确的。 This query is working, but I think return string value when no result. 该查询有效,但我认为没有结果时返回字符串值。

Following script return like this: 以下脚本返回如下:

在此处输入图片说明

but i think actually it's want to be like this, 但我认为实际上是想要这样,

在此处输入图片说明

please help me. 请帮我。 is this right ? 这是正确的吗 ?

select max(CE_Issuedate)
from t_Certificate
where EXISTS (select * from t_item
              where IT_rfileID_fk = '1482'
                and CE_CertID_pk = IT_rfileID_fk)

If no row is found, MAX returns NULL. 如果找不到行,则MAX返回NULL。 Otherwise that CE_Issuedate is returned. 否则,返回CE_Issuedate。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM