SELECT * FROM fnd_lookup_values lv WHERE lv.language = userenv('LANG') AND lv.view_application_id = 700 AND lv.security_group_id = 0转换为hive的写法
时间: 2024-03-16 12:45:05 浏览: 23
下面是将该SQL转换为Hive的写法:
```
SELECT *
FROM fnd_lookup_values lv
WHERE lv.language = '${env:LANG}'
AND lv.view_application_id = 700
AND lv.security_group_id = 0;
```
在Hive中,可以使用`${env:变量名}`的方式获取环境变量的值,因此可以使用`${env:LANG}`获取当前用户的语言设置。另外,Hive中不需要指定所有列名,可以使用`*`来代替。
相关问题
SELECT * FROM fnd_lookup_values lv WHERE lv.language = userenv('LANG') AND lv.view_application_id = 700 AND lv.security_group_id = 0转换为hive的写法
在Hive中,可以使用类似以下的语句来实现与上述SQL查询相同的操作:
```
SELECT *
FROM fnd_lookup_values lv
WHERE lv.language = get_json_object('{"LANG":"' || substr(user(), instr(user(), '@') + 1) || '"}', '$.LANG')
AND lv.view_application_id = 700
AND lv.security_group_id = 0;
```
需要注意的是,Hive中的语法与Oracle SQL略有不同,因此需要使用一些不同的函数和语句来实现相同的查询。在上面的查询中,我们使用了`get_json_object`函数来获取当前用户的语言设置,以替代Oracle SQL中的`userenv`函数。同时,我们使用了`substr`和`instr`函数来从当前用户的用户名中提取出域名,以获取当前会话的语言设置。
SELECT * FROM gerp.fnd_lookup_values lv WHERE lv.language = userenv('LANG') AND lv.view_application_id = 700 AND lv.security_group_id = 0在hive中怎么写
在Hive中,你可以使用以下SQL语句来实现相同的查询:
```
SELECT *
FROM gerp.fnd_lookup_values lv
WHERE lv.language = SESSION_USER()
AND lv.view_application_id = 700
AND lv.security_group_id = 0;
```
其中,SESSION_USER()函数用于获取当前会话的用户名,相当于Oracle数据库中的USERENV('USER')函数。由于Hive中没有userenv函数,因此需要使用SESSION_USER()函数来代替。
另外,Hive中的SQL语句不区分大小写,因此可以将FROM、WHERE、AND等关键字写成大写或小写,以便于阅读。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)