Hive 如何检查列是否为字符串

Hive 如何检查列是否为字符串,hive,Hive,如何在配置单元中检查列是否包含字符串。我的列是字符串数据类型,其值如下 my_col string 000001234 0001111 检查字符串是否存在的一种方法如下: SELECT my_col, CASE WHEN HEX(LOWER(my_col)) <> HEX(UPPER(my_col)) then 'char present' else 'no char' END char_check FROM my_table; 选择 我的上校, 当十六进制(较低(我的列))十

如何在配置单元中检查列是否包含字符串。我的列是字符串数据类型,其值如下

my_col string 
000001234
0001111

检查字符串是否存在的一种方法如下:

SELECT
my_col,
CASE WHEN HEX(LOWER(my_col)) <> HEX(UPPER(my_col)) then 'char present' else 'no char' END char_check
FROM my_table;
选择
我的上校,
当十六进制(较低(我的列))十六进制(较高(我的列))时,则为'char present'或'no char'结束字符检查
从我的桌子上;
我们将值转换为小写和大写,并将其转换为十六进制

HEX('1a')
3161

HEX('1A')
3141

这就是为什么我们知道存在一个可以转换成大写或小写的字符


这是一个快速的解决方法,否则我将使用Java创建UDF。

检查是否存在字符串的一种方法如下:

SELECT
my_col,
CASE WHEN HEX(LOWER(my_col)) <> HEX(UPPER(my_col)) then 'char present' else 'no char' END char_check
FROM my_table;
选择
我的上校,
当十六进制(较低(我的列))十六进制(较高(我的列))时,则为'char present'或'no char'结束字符检查
从我的桌子上;
我们将值转换为小写和大写,并将其转换为十六进制

HEX('1a')
3161

HEX('1A')
3141

这就是为什么我们知道存在一个可以转换成大写或小写的字符

这是一个快速的解决方法,否则我将使用Java创建UDF