2016-12-28 1 views
0

Ich habe eine Tabelle, die Athleten aufzeichnet und die Sportarten, die sie spielen oder nicht spielen. Ich möchte den Ergebniswert in einer Spalte auflisten lassen.Benennen Sie Wertausgabe um und kombinieren Sie Wert in einer Spalte in SQL

SELECT Ind_First_Name, Ind_Last_Name, 
      CASE WHEN Baseball = 'Y' THEN 'Baseball |' ELSE '' END+ ' ' + 
      CASE WHEN Football = 'Y' THEN 'Football |' ELSE '' END+ ' ' + 
      CASE WHEN Soccer = 'Y' THEN 'Soccer' ELSE '' END 

    from  Sports 

ich die Ausgabe sehen möchten werden: (Da Fußball ein 'N' hat) Jane Doe Baseball | Fußball

Meine Ausgabe setzt einen leeren Raum. Nicht sicher, wie dieser Speicherplatz mit dem Fußballwert zu entfernen ist leer.

+1

Was passiert, wenn sie nur Baseball spielen? Dann hast du am Ende eine Pfeife, ist das akzeptabel? –

Antwort

0

Geben Sie den Platz in die Case-Anweisung ein.

AKTUALISIERT Entfernte Rohre und Zwischenräume.

SELECT Ind_First_Name, Ind_Last_Name, 
      CASE WHEN Baseball = 'Y' THEN 'Baseball' ELSE '' END + 
      CASE WHEN Football = 'Y' AND Baseball = 'Y' THEN ' | Football' 
        WHEN Football = 'Y' AND Baseball = 'N' THEN 'Football' ELSE '' END + 
      CASE WHEN Soccer = 'Y' AND (Football = 'Y' OR Baseball = 'Y') THEN ' | Soccer'        
        WHEN Soccer = 'Y' AND Baseball = 'N' AND Football = 'N' THEN 'Soccer' ELSE '' END  
    from  Sports 
+0

Es gibt Fehler darin, dass, wenn sie nur Baseball spielen, das ein hängendes Rohr am Ende haben würde. –

+0

Also ich bin mir nicht sicher, wie ich es einrichten soll, damit die Pipe nicht angezeigt wird, wenn nichts folgt. Meine Ausgabe für wenn nur Soccer ja ist ist: – Joe

+0

Also ich bin mir nicht sicher, wie ich es einrichten soll, damit die Pipe nicht angezeigt wird, wenn nichts folgt. Mein Ausgang für wenn nur Fußball ist ja ist: "Fußball" wie zu haben: "Fußball". Der vorangehende Leerraum wird eingegeben. Ich bin mir nicht sicher, ob ein iCount = funktionieren würde oder ob ich sicher bin, wie ich es programmieren soll. Ich werde weiter daran arbeiten und verschiedene Optionen ausprobieren. – Joe

0

Können Sie das versuchen?

SELECT Ind_First_Name, Ind_Last_Name, 
     CASE WHEN Baseball = 'Y' THEN 'Baseball | ' ELSE '' END + 
     CASE WHEN Football = 'Y' THEN 'Football | ' ELSE '' END + 
     CASE WHEN Soccer = 'Y' THEN 'Soccer' ELSE '' END 

from  Sports 
Verwandte Themen