ich die unten Abfrage haben, die ich verwende Datensätze abzurufen, die als NULL
oder ''
eingestellt mindestens eine der folgenden Spalten:SQL Felder erhalten, die für jeden Datensatz null/leer zurückgegeben
- Mainimage
- Zusammenfassung
Beschreibung
DECLARE @missingFields varchar(100) SET @missingFields = '' SELECT c.[UnitReference] as 'UnitRef', t.[NodeName] as 'Property', @missingFields as 'Field/s missing' FROM [DetailPage] d INNER JOIN [CRM] c ON d.ItemID = c.ItemID INNER JOIN [Tree] t ON d.[ID] = t.[ID] WHERE (ISNULL(d.MainImage, '') = '' OR ISNULL(d.Summary,'') = '' OR ISNULL(d.[Description],'') = '') AND c.[IsListed] = 1 AND c.[IsMarketed] = 1
Dies gibt die Daten zurück, die ich möchte, aber ich muss auch eine Zeichenfolge erstellen, die auflistet, welche der Spalten für den zurückgegebenen Datensatz leer oder leer ist, z. "Main Image is empty, Description is empty"
Wenn ein Datensatz leer ist MainImage
und Description
Spalten.
Ich habe versucht:
@missingFields = CASE WHEN ISNULL(MainImage, '') = '' THEN 'Main image is null' ELSE '' END -- etc...
Aber ich kann das nicht enthalten mit den Datenabruf-Operationen. Wie würde ich das machen?
Wird eines der Felder immer null sein? Können mehrere Felder auch null sein? – scsimon
Warum wird eine Variable benötigt? Kannst du nicht einfach die case-Anweisung verwenden? Möchten Sie mit bis zu 3 verschiedenen Status reocrd? etwas wie 'Fall wenn isnull (d.mainimage, '') = '' dann 'Hauptbild ist Null' end & case wenn isnull (d.Description, '') = '' then 'Beschreibung ist Null' end as [ Felder fehlen] '? – xQbert
Ein Feld ist nicht garantiert null. Mehrere Felder können für einen Datensatz ja null sein. – DGibbs