Ho una tabella con più colonne. Il valore di una colonna è 0
o 1
. Voglio scrivere una query che restituisce "Ciao" se il valore era 0
o "Ciao" se era 1
. Qual è il modo appropriato per scrivere questa query?Sostituzione del valore condizionale in SQL Server
risposta
Utilizzare un CASE
expression
SELECT CASE YourCol
WHEN 0 THEN 'Hello'
WHEN 1 THEN 'Bye'
END AS SomeAlias
FROM YourTable
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
Il nome "TargetColumnName" è un nome intrinseco di SQL, quindi SQL sa che si riferisce a "Column1, Column2, ..."? – Hans
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 –
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
mi ha battuto dai secondi ... +1 per una facile lettura. –
Plz help me.Se voglio selezionare diverse colonne. Ad esempio, seleziona ID, YourCol, Name (YourCol è quella colonna che era espressione del caso selezionato). – Tavousi