Oświadczenie w sprawie Nielegalnego wyrażenie SQL

0

Pytanie

Nie rozumiem, skąd wziął się ten błąd msg "Nielegalne wyrażenia w klauzuli WHEN wyrażenia CASE", uruchamiając ten fragment kodu w Teradata SQL

CASE 
  WHEN f_ev1.PROCESS_NO IN 
    (
      SELECT
        numbers.PROCESS_NO
      FROM numbers
      WHERE 
        numbers.FLAG = 1
      GROUP BY 1 --no duplicates
    ) THEN 2
END AS Status,

Jeśli napiszę (niektóre cyfry), to działa dobrze. Ale to jest lista, składający się z 50 unikalnych wartości, które mogą się zmieniać z upływem czasu.

case sql teradata
2021-11-16 11:32:54
1

Najlepsza odpowiedź

0

Proponuję pobrać pięćdziesiąt wartości w innej tabeli i połączyć tę tabelę z główną tabelą

table_50 - Tabela z 50 unikalnych wartości main_tbl - Podstawowe tabela

insert into table_50 ( process_no ) SELECT numbers.PROCESS_NO FROM numbers WHERE numbers.FLAG = 1 GROUP BY 1 ;

Select case when b.process_no is null then 2  end as status from main_table a
left join table_50 b
on a.process_no= b.process_no

Z punktu widzenia wydajności jest bardziej skuteczne, i można również zaktualizować wartości w tabeli 50, zgodnie z własnymi wymaganiami

2021-11-23 13:08:01

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................