Případě Prohlášení Nelegální Výraz SQL

0

Otázka

Nechápu, kde je chyba msg 'Nelegální výraz, KDYŽ ustanovení PŘÍPADĚ výrazu' pochází od spuštěním tohoto úryvku v 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,

Pokud píšu V (nějaká čísla) to funguje v pohodě. Ale to je seznam, který se skládá z 50 jedinečných hodnot, které lze případně změnit v průběhu času.

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

Nejlepší odpověď

0

Můj Návrh je, že můžete načíst padesát hodnot do jiné tabulky a můžete se připojit, že tabulka s hlavní tabulky

table_50 - Tabulka s 50 unikátních hodnot main_tbl - Hlavní tabulky

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 hlediska výkonu je to více efektivní a také si můžete aktualizovat hodnoty v table_50 dle vašeho požadavku

2021-11-23 13:08:01

V jiných jazycích

Tato stránka je v jiných jazycích

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