select CASE WHEN(SELECT SUM(INSTR(concat(JNL.FIELD522,CHR(10),JNL.FIELD523,CHR(10),JNL.FIELD524,CHR(10),JNL.FIELD525),UPPER(PRM.NATIONALITY))) sum FROM PARA NATIONALITY PRM)=0 THEN SUBSTR(JNL.FIELD522,1,2)end from TBFTJNL JNL 改写成hive写法
时间: 2023-11-20 20:04:40 浏览: 65
以下是将该SQL语句转换为Hive写法的示例:
```
SELECT
CASE
WHEN
(SELECT SUM(INSTR(concat(JNL.FIELD522,CHR(10),JNL.FIELD523,CHR(10),JNL.FIELD524,CHR(10),JNL.FIELD525),UPPER(PRM.NATIONALITY)))
FROM PARA_NATIONALITY PRM
) = 0
THEN SUBSTR(JNL.FIELD522,1,2)
END
FROM TBFTJNL JNL;
```
在Hive中,子查询必须放在括号中,并且在主查询中使用FROM子句来指定要查询的表格。此外,在Hive中,字符串连接使用CONCAT函数,而不是使用“+”运算符。因此,在该SQL语句中,我们使用了CONCAT函数来连接多个字符串。
相关问题
selectCASEWHEN subquery.sum = 0 or subquery.sum is null THENSUBSTR (JNL. FIELD522, 1, 2)endfrom FCM_BDPVIEWX$ (version_num} . FCM_ABR_F_TBFTJNL_S JNLleft Join (SELECT SUM (INSTR (concat (JNL. FIELD522, "\n", JNL. FIELD523, "\n', JNL. FIELD524, "\n', JNL, FIELD525) ,UPPER (PRM. NATIONALITY) ) ) sumFROM BDSP_FHTS60015 (version_num) . PARA_ NATIONALITY PRM )subquery on 1=1 改成hive写法
下面是将该查询转换为 Hive SQL 语法的示例:
```
SELECT
CASE
WHEN subquery.sum = 0 OR subquery.sum IS NULL
THEN SUBSTR(JNL.FIELD522, 1, 2)
END
FROM
FCM_ABR_F_TBFTJNL_S JNL
LEFT JOIN (
SELECT
SUM(INSTR(CONCAT(JNL.FIELD522, "\n", JNL.FIELD523, "\n", JNL.FIELD524, "\n", JNL.FIELD525), UPPER(PRM.NATIONALITY))) sum
FROM
BDSP_FHTS60015.PARA_NATIONALITY PRM
) subquery ON 1 = 1;
```
在 Hive 中,字符串拼接使用`CONCAT`函数,字符串换行可以使用`\n`,字符串转换成大写可以使用`UPPER`函数。此外,Hive 中的表名需要包含数据库名称,因此需要将`version_num`替换为实际的数据库名称。
阅读全文