Sql 正在尝试将不可为NULL的列的值设置为NULL
我正在尝试将不可为NULL的列的值设置为NULL 使用XML路径时出错 代码:Sql 正在尝试将不可为NULL的列的值设置为NULL,sql,sql-server,Sql,Sql Server,我正在尝试将不可为NULL的列的值设置为NULL 使用XML路径时出错 代码: select fdp.POLICYNUMBER, fdp.INSUREDNAME, fdp.OWNERNAME, fdp.AGENCYCODE, p.WFWORKSTEPNAME, fdpc.NIGO, fdpc.NIGOREASON, d.NIGOREQUIREMENT, wci.WCSTATUS, wci.DATECOMPLET
select
fdp.POLICYNUMBER,
fdp.INSUREDNAME,
fdp.OWNERNAME,
fdp.AGENCYCODE,
p.WFWORKSTEPNAME,
fdpc.NIGO,
fdpc.NIGOREASON,
d.NIGOREQUIREMENT,
wci.WCSTATUS,
wci.DATECOMPLETED,
fdCI.NEWUNDERWRITINGUSER,
fdr.NBAMOUNT
into
#t
from
PINewBusiness p
join
FDPolicyDetails fdp on SUBSTRING(p.CFREPKEY, 9, LEN(p.CFREPKEY)) = fdp.PARENT_CASEID
and (p.WFWORKSTEPNAME = 'PendingRequirements' or
p.WFWORKSTEPNAME = 'FollowUpRequirements' )
join
FDProcessing fdpc on SUBSTRING(p.CFREPKEY, 9, LEN(p.CFREPKEY)) = fdpc.PARENT_CASEID
join
FDRounting fdr on SUBSTRING(p.CFREPKEY, 9, LEN(p.CFREPKEY)) = fdr.PARENT_CASEID
cross apply
(select NIGOREQUIREMENT + ', '
from FDNIGORequirements nr
where nr.PARENT_CASEID = fdpc.PARENT_CASEID
for xml path('')) D (NIGOREQUIREMENT)
--join FDNIGORequirements nr on SUBSTRING(p.CFREPKEY, 9, LEN(p.CFREPKEY)) = nr.PARENT_CASEID
cross apply
(select NIGOREQUIREMENT + ', '
from FDNIGORequirements nr
where nr.PARENT_CASEID = SUBSTRING(p.CFREPKEY,9,LEN(p.CFREPKEY))
for xml path('')) D (NIGOREQUIREMENT)
join
(select max(CREATEDDATETIME) as CREATEDDATETIME, PARENT_CASEID
from FDWelcomeCall
group by PARENT_CASEID ) wc on fdr.PARENT_CASEID = wc.PARENT_CASEID
join
FDWelcomeCall wci on wci.PARENT_CASEID = wc.PARENT_CASEID
and wci.CREATEDDATETIME = wc.CREATEDDATETIME
join
FDCaseInformation fdCI on SUBSTRING(p.CFREPKEY, 9, LEN(p.CFREPKEY)) = fdCI.PARENT_CASEID
where
p.WFSTEPENTRYTIME >= @sdate
and p.WFSTEPENTRYTIME <= @edate
order by
p.WFFLOWENTRYTIME desc
如果要保留具有空值的行,必须替换出现错误的列中的空值,为此,可以使用:
SELECT COALESCE([MyColumn],__ReplacementValue__) AS [MyColumn] FROM MyTable
或
您可以在内部或外部选择中使用其中一个
否则,如果该行不存在(如果该值为null),则必须通过添加WHERE子句将其过滤掉:
WHERE [MyColumn] IS NOT NULL
如果要保留具有空值的行,必须替换出现错误的列中的空值,为此,可以使用:
SELECT COALESCE([MyColumn],__ReplacementValue__) AS [MyColumn] FROM MyTable
或
您可以在内部或外部选择中使用其中一个
否则,如果该行不存在(如果该值为null),则必须通过添加WHERE子句将其过滤掉:
WHERE [MyColumn] IS NOT NULL
您好,请分享您的t表定义。您可能认为交叉应用将消除子查询不返回任何内容的行。但是,因为您使用的是for xml,所以您得到的是一个空xml值,显然是要插入到一个外部表中。@GSerg如何解决这个问题?请分享您的t表定义。您可能认为交叉应用将消除子查询不返回任何内容的行。但是,因为您使用的是for xml,所以您得到的是一个空xml值,很明显,您将该值插入到一个外部表中。@GSerg如何解决这个问题