2016-04-06 11 views
0

Flag Ich habe eine Abfrage für SQL und das funktioniert gut. Ich möchte die Kontaktinformationen von 2 PersonenSQL-Abfrage zeigen die erste, wenn sie

Ich benutze diese Abfrage:

SELECT 
    Contact = STUFF((SELECT ';' + LTRIM(RTRIM(Ad.[Name])) + ', ' + Ba.[IB] + ', ', Ba.[BI] + ', ', Ba.[BN] 
        FROM Ba 
        JOIN Ad ON Ba.AdID = Ad.AdID 
        WHERE Ad.AdNu = '448412' OR Ad.AdNu = '5444877' 
        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') 

Sie tun, was ich will! Aber jetzt möchte ich diese Abfrage bearbeiten, da einige Personen 2 Adressen haben und in der Tabelle "Ba" eine Spalte mit dem Namen "IsAdress" steht.

Diese Spalte hat 0 für falsch und 1 für wahr. Nun möchte ich, dass meine Liste an der ersten Stelle die Adresse mit der 1 in der Spalte "IsAdress" anzeigt, aber ich weiß nicht wie man die WHERE ändert. Wie bekomme ich meine Anfrage?

Vielleicht eine WHERE mit anderen Select-Anweisung zu Chek, die Adresse ist wahr?

Bitte helfen Sie mir.

Greetz

Antwort

1
SELECT Contact = STUFF((
SELECT ';' + LTRIM(RTRIM(Ad.[Name])) + ', ' + Ba.[IB] + ', ', Ba.[BI] + ', ', Ba.[BN] 
FROM Ba JOIN Ad 
ON Ba.AdID = Ad.AdID 
Where (Ad.AdNu = '448412' OR Ad.AdNu = '5444877') 
ORDER BY Ba.IsAdress DESC 
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') 
+0

sorry für die Verzögerung, wenn ich Ihre Abfrage verwenden. Dann bekomme ich nur die Zeilen, wenn sie die 1 in IsAdress haben. Aber ich möchte eine Liste, dass sie zuerst die Zeilen mit der 1 in IsAdress anzeigen und dann die Zeilen mit der 0 in IsAdress kommen. Ich möchte al lange Liste der Daten zeigen, mit 0 und 1 in IsAdress –

+0

Ich habe mit der Bestellung von –

+0

bearbeitet Perfect !!! Funktioniert gut –

Verwandte Themen