Voglio modificare il seguente SQL in modo che la query restituisca il tipo di carta (visa, mastercard, ecc.) Come metodo di pagamento anziché carta di credito.Case statement con condizionale nel server SQL
CASE WHEN pm.PaymentType = 1 THEN 'Cash'
WHEN pm.PaymentType = 2 THEN 'Check'
WHEN pm.PaymentType = 3 THEN 'Credit Card'
WHEN pm.PaymentType = 4 THEN 'EFT'
WHEN pm.PaymentType = 5 THEN 'Money Order'
WHEN pm.PaymentType = 6 THEN 'Conveyance'
ELSE 'Unknown'
END AS PaymentMethod,
Qualcuno può indicarmi la giusta direzione. Ho provato ad aggiungere un secondo condizionale per il mio caso dichiarazione, ma viene a mancare fuori a 'Unknown' per tutti i tipi di pagamento di 3.
CASE WHEN pm.PaymentType = 1 THEN 'Cash'
WHEN pm.PaymentType = 2 THEN 'Check'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 1 THEN 'American Express'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 2 THEN 'Discover'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 3 THEN 'Mastercard'
WHEN pm.PaymentType = 3 and pm.CardTypeMId = 4 THEN 'Visa'
WHEN pm.PaymentType = 4 THEN 'EFT'
WHEN pm.PaymentType = 5 THEN 'Money Order'
WHEN pm.PaymentType = 6 THEN 'Conveyance'
ELSE 'Unknown'
END AS PaymentMethod,
vi ringrazio in anticipo per la vostra assistenza.
Suona come 'pm.CardTypeMId' non può essere 1, 2, 3 o 4? – LittleBobbyTables
IMO duplicato, http://stackoverflow.com/questions/3043154/combining-multiple-condition-in-single-case-statement-in-sql-server – Adam
Mi sembra soddisfacente, sintassi ANSI SQL compatibile. (Prova un CASO nel caso CASE se 3 poi.) – jarlh