Das ist mein SQL-Code unten:SQL Server Handle Keine Daten in einigen Fällen
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)
Das Problem aus dem folgenden Abschnitt des Codes kommt, die manchmal wegen nicht vorhandener Daten fehlschlägt:
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)
Im obigen Code ist FrontTemplate_Id
immer ausgefüllt, aber BackTemplate_Id
ist manchmal NULL
, was bedeutet, dass in den anderen Tabellen keine Daten vorhanden sind. Nicht NULL, aber einfach NICHTS. Wenn dies der Fall ist, gibt der gesamte Codeblock eine NULL
zurück, anstatt nur ein Leerzeichen zu lassen und fortzufahren. Das ist, was ich mit dem ISNULL
Teil habe ich versucht,
Lange Rede kurzer hinzugefügt: Ich brauche zu behandeln, wenn keine Daten für meine Stationery
und [Order]
Tabellen vorhanden ist, und zu vermeiden, dass die ganze Sache ein NULL
zurück.
Verwenden 'CONCAT' statt. – lad2025