Czy można aliasować nazwę kolumny, a następnie użyć jej w instrukcji CASE? Na przykład:
SELECT col1 as a, CASE WHEN a = 'test' THEN 'yes' END as value FROM table;
Próbuję dokonać aliasu kolumny, ponieważ w rzeczywistości moja instrukcja CASE zostałaby wygenerowana programowo i chcę, aby kolumna, której używa instrukcja case, została określona w kodzie SQL zamiast przekazywać inny parametr do programu.
Macie jakiś pomysł?
1 odpowiedź
Myślę, że MySql i MsSql nie pozwolą na to, ponieważ zostanie spróbowane znalezienie wszystkich kolumn w klauzuli CASE jako kolumny tabel w klauzuli WHERE.
Nie wiem o jakim DBMS mówisz, ale myślę, że możesz zrobić coś takiego w dowolnym DBMS:
SELECT *, CASE WHEN a = 'test' THEN 'yes' END as value FROM (
SELECT col1 as a FROM table
) q