Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要打印SQL Server 2008中所有缺少的值列名_Sql_Sql Server_String_Sql Server 2008 R2 - Fatal编程技术网

需要打印SQL Server 2008中所有缺少的值列名

需要打印SQL Server 2008中所有缺少的值列名,sql,sql-server,string,sql-server-2008-r2,Sql,Sql Server,String,Sql Server 2008 R2,我需要一个字符串中所有缺少强制值的列名,在下面显示的select语句中 我尝试过使用CASE语句,但它不起作用,因为如果第一个条件匹配,它将忽略第二个条件 SELECT stg2.StageID ,[CSP] ,[CSPRegionID] ,[SoldToCompanyID] ,[EndUserCompanyID] ,[SupportOptionID] ,'One/More Mandatory value/s is/are missing'

我需要一个字符串中所有缺少强制值的列名,在下面显示的select语句中

我尝试过使用CASE语句,但它不起作用,因为如果第一个条件匹配,它将忽略第二个条件

SELECT
    stg2.StageID
    ,[CSP]
    ,[CSPRegionID]
    ,[SoldToCompanyID]
    ,[EndUserCompanyID]
    ,[SupportOptionID]
    ,'One/More Mandatory value/s is/are missing' FailureReason
    ,CASE   WHEN stg2.CSP IS NULL THEN @FailureDetails + 'CSP' 
            WHEN stg2.CSPRegionID IS NULL THEN @FailureDetails + 'CSP Region' 
            WHEN stg2.SoldToCompanyID IS NULL THEN @FailureDetails + 'SoldToCompany' 
            WHEN stg2.EndUserCompanyID IS NULL THEN @FailureDetails + 'EndUserCompany' 
            WHEN stg2.SupportOptionID IS NULL THEN @FailureDetails + 'SupportOption' 
    END FailureDetails
FROM [EntitlementTracker_SRV4Stage].[dbo].[srv4_ClassicLoad_Stage2] stg2
WHERE stg2.CSP IS NULL
OR stg2.CSPRegionID IS NULL
OR stg2.SoldToCompanyID IS NULL
OR stg2.EndUserCompanyID IS NULL 
OR stg2.SupportOptionID IS NULL

任何人都可以帮忙。提前感谢。

你说得对,
案例
只会评估第一个匹配的案例。我的建议是:

,  CASE WHEN stg2.CSP              IS NULL THEN 'CSP, '            ELSE '' END
 + CASE WHEN stg2.CSPRegionID      IS NULL THEN 'CSP Region, '     ELSE '' END
 + CASE WHEN stg2.SoldToCompanyID  IS NULL THEN 'SoldToCompany, '  ELSE '' END
 + CASE WHEN stg2.EndUserCompanyID IS NULL THEN 'EndUserCompany, ' ELSE '' END
 + CASE WHEN stg2.SupportOptionID  IS NULL THEN 'SupportOption, '  ELSE '' END
 FailureDetails

您是对的,
CASE
将只计算匹配的第一个CASE。我的建议是:

,  CASE WHEN stg2.CSP              IS NULL THEN 'CSP, '            ELSE '' END
 + CASE WHEN stg2.CSPRegionID      IS NULL THEN 'CSP Region, '     ELSE '' END
 + CASE WHEN stg2.SoldToCompanyID  IS NULL THEN 'SoldToCompany, '  ELSE '' END
 + CASE WHEN stg2.EndUserCompanyID IS NULL THEN 'EndUserCompany, ' ELSE '' END
 + CASE WHEN stg2.SupportOptionID  IS NULL THEN 'SupportOption, '  ELSE '' END
 FailureDetails

谢谢你,斯坦利。。假设在打印列名之前,我需要添加一个字符串作为“缺少以下强制值:”,您能帮助我如何打印吗?@prabuR只需将其添加到第一个
案例的前面即可:
SQL SERVER
中不支持@AntonyGibbs
|
运算符谢谢Stanley。。假设在打印列名之前,我需要添加一个字符串作为“Missing below mandable values:”,您能帮助我如何打印吗?@prabuR只需将其添加到第一个
案例的前面即可:
SQL SERVER
中不支持@AntonyGibbs
|
运算符