需要打印SQL Server 2008中所有缺少的值列名
我需要一个字符串中所有缺少强制值的列名,在下面显示的select语句中 我尝试过使用CASE语句,但它不起作用,因为如果第一个条件匹配,它将忽略第二个条件需要打印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
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|
运算符