2011-12-11 8 views

risposta

13

Utilizzare un CASE expression

SELECT CASE YourCol 
     WHEN 0 THEN 'Hello' 
     WHEN 1 THEN 'Bye' 
     END AS SomeAlias 
FROM YourTable 
+0

mi ha battuto dai secondi ... +1 per una facile lettura. –

+0

Plz help me.Se voglio selezionare diverse colonne. Ad esempio, seleziona ID, YourCol, Name (YourCol è quella colonna che era espressione del caso selezionato). – Tavousi

1

Se si sceglie MULTI/tutte le colonne, prova con qui sotto:

SELECT Column1, Column2, -- Put other column name here 
     CASE TargetColumnName 
     WHEN 0 THEN 'Hello' 
     WHEN 1 THEN 'Bye' 
     END AS TargetAliasColumnName 
FROM YourTableName 
+0

Il nome "TargetColumnName" è un nome intrinseco di SQL, quindi SQL sa che si riferisce a "Column1, Column2, ..."? – Hans

+0

Puoi scrivere il nome della colonna desiderata, dire che il nome della colonna è Column2 invece di TargetColumnName - Ho scritto TargetColumnName nella mia risposta perché potrebbe esserci un nome di colonna nell'istruzione SELECT e devi specificare il nome della colonna richiesta in "CASE" espressione in SQL, spero che tu abbia capito il mio punto. Grazie –

+0

Quindi stai dicendo "TargetColumnName" è un segnaposto per uno di Column1, Column2. Ho pensato che stavi codificando per più colonne ed eseguissi l'attività di sostituzione condizionale per tutte le colonne selezionate anziché solo una. In tal caso, qual è la differenza tra l'operazione su una singola colonna, come quella mostrata nella risposta di Martin Smith e quella su più colonne, come sembra suggerire che il tuo codice eseguirà? – Hans