簡體   English   中英

如何根據 Hive SQL 中的條件運行不同的選擇語句

[英]how to run a different select statement based on condition in Hive SQL

我想知道如何根據 Hive SQL 中的條件運行不同的選擇語句。

以下查詢不起作用但會引發錯誤。

編譯語句時出錯:FAILED:ParseException 行 4:2 無法識別表達式規范中 '(' 'SELECT' '1' 附近的輸入

SELECT 
    CASE WHEN '${UN}'!= '' THEN 
        (
        SELECT * 
            from table1 t 
            WHERE t.yymmddval BETWEEN '${D1}' AND '${D2}'
            AND t.un in ('${UN}')
        )
    ELSE
        (
        SELECT * 
            from table1 t 
            WHERE t.yymmddval BETWEEN '${D1}' AND '${D2}'
            AND t.un in (
               (SELECT
                o.unq_num as un
                FROM table2 as o
                WHERE o.date >= '2017-01-01'
                    AND upper(o.srl_num) in ('${R}')
                LIMIT 1)            
            )       
        )
    END 

將 UNION ALL 用於您的查詢 + 添加切換相應查詢的條件:

 select * 
   from table1 t 
   where (t.yymmddval BETWEEN '${D1}' and '${D2}')
     and t.un in ('${UN}') 
     and '${UN}'!= '' --switching condition 

union all

select * 
  from table1 t 
 where (t.yymmddval BETWEEN '${D1}' AND '${D2}')
   and t.un in 
              (SELECT
               o.unq_num as un
               FROM table2 as o
               WHERE o.date >= '2017-01-01'
                   AND upper(o.srl_num) in ('${R}')
               LIMIT 1) 
    and '${UN}'= '' --switching condition

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM