Declarație caz Ilegale Expresie SQL

0

Problema

Nu înțeleg de unde eroarea msg Ilegal de exprimare în CÂND clauza de CAZ expresia vine de prin rularea acestui fragment în 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,

Dacă aș scrie ÎN (unele numere) funcționează foarte bine. Dar aceasta este o listă care este format din 50 de valori unice care pot schimba de-a lungul timpului.

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

Cel mai bun răspuns

0

Sugestia mea este că puteți încărca cincizeci de valori într-un alt tabel și puteți să vă alăturați masa cu tabelul principal

table_50 - Tabelul cu 50 de valori unice main_tbl - masă Principală

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

De la o performanță perspectivă, acest lucru este mai eficient și puteți actualiza, de asemenea, valorile în table_50 ca pe dvs. cerință

2021-11-23 13:08:01

În alte limbi

Această pagină este în alte limbi

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