SQL: Alias Column Name do użycia w instrukcji CASE

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

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.