0
这是我下面的SQL代码:SQL服务器处理无数据在某些情况下
SELECT 'Template Name: ' + (SELECT Template.TemplateName FROM Stationery INNER JOIN Template ON
Template.Template_Id=Stationery.FrontTemplate_Id INNER JOIN [Order] ON
[Order].Stationery_Id=Stationery.Stationery_Id
WHERE [Order].Order_Id in (9513)) +
' | Back Template: ' + (SELECT ISNULL(Template.TemplateName, '') FROM Stationery INNER JOIN Template ON
Template.Template_Id=Stationery.BackTemplate_Id INNER JOIN [Order] ON
[Order].Stationery_Id=Stationery.Stationery_Id
WHERE [Order].Order_Id in (9513)) +
' Other Information : ' + (SELECT CONVERT(NVARCHAR(MAX), OtherInformation)
FROM Template INNER JOIN [Order]
ON Template.TemplateName=[Order].ProductName
WHERE [Order].Order_Id in (9513)) +
' User Comments: ' + (SELECT ISNULL(CONVERT(NVARCHAR(MAX), [Order].IndividualComments),'')
FROM [Order] WHERE [Order].Order_Id in (9513))
FROM [Order] WHERE [Order].Order_Id in (9513)
的问题来自于代码,这有时会失败,因为不存在的数据的以下部分:
SELECT ISNULL(Template.TemplateName, '') FROM Stationery INNER JOIN Template ON
Template.Template_Id=Stationery.BackTemplate_Id INNER JOIN [Order] ON
[Order].Stationery_Id=Stationery.Stationery_Id
WHERE [Order].Order_Id in (9513)
在上面的代码中总是填充FrontTemplate_Id
,但BackTemplate_Id
有时是NULL
,这意味着其他表中没有数据。不是NULL,但只是普通的没什么。如果发生这种情况,整个代码块将返回一个NULL
,而不是留下空白并继续。这是我试图用我加
ISNULL
部分
长话短说:我需要处理,如果存在我的Stationery
和[Order]
表无数据,避免整件事返回NULL
。
使用'CONCAT'代替。 – lad2025