cast:主要用于类型转换,如果转换失败则返回null
select cast(3.14 as int); -- 3
select cast(3.14 as string) ; -- '3.14'
select cast('3.14' as float); -- 3.14
select cast('3.14' as int); -- 3
select cast('binzi' as int); -- null
很多时候,底层也默认做了自动转换
select '3'+3; --6
实际应用场景:concat_ws用指定分隔符拼接到一起生成新的字符串,但拼接的内容必须是字符串类型,所以可以用cast来先进行类型转换
select concat_ws('-','bbdwj',cast(666 as string)); -- 'bwj666'
数据脱敏(Data Masking),顾名思义,是屏蔽敏感数据,对某些敏感信息(比如,身份证号、手机号、卡号、客户姓名、客户地址、邮箱地址、薪资等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护。业界常见的脱敏规则有,替换、重排、加密、截断、掩码,用户也可以根据期望的脱敏算法自定义脱敏规则。
-- 演示数据脱敏函数[了解]
-- mask_hash: 返回指定字符串的hash编码
select mask_hash('binzi');
大小写转换
--将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。
select mask("abc123DEF"); -- xxxnnnXXX
--自定义替换的字母: 依次为大写小写数字
select mask("abc123DEF",'大','小','数');
select mask("A,b,1",'大','小','数'); -- 大,小,数
select mask("abc123DEF",'/','.','%'); -- ...%%%///
自定义脱敏位置
--mask_first_n(string str[, int n]
--对前n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_first_n("abc123DEF",6); --xxxnnnDEF
--mask_last_n(string str[, int n])
--对后n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_last_n("abc123DEF",6); -- abcnnnXXX
--mask_show_first_n(string str[, int n])
--除了前n个字符,其余进行掩码处理
select mask_show_first_n("abc123DEF",6); --abc123XXX
--mask_show_last_n(string str[, int n])
--除了后n个字符,其余进行掩码处理
select mask_show_last_n("abc123DEF",6); --xxx123DEF
--------------------------------------其他函数-----------------------------------------------
-- 演示其他函数
--取哈希值函数:hash
select hash("bbdwj"); -- 93524471
--MD5加密: md5(string/binary)
select md5("binzi"); -- 32位 072853027b387fcf891a610137f8dc1b
select length('072853027b387fcf891a610137f8dc1b');
--SHA-1加密: sha1(string/binary)
select sha1("binzi"); -- 40位 66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9
select length('66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9');
--SHA-2家族算法加密:sha2(string/binary, int) (SHA-224, SHA-256, SHA-384, SHA-512)
select sha2("binzi",224);
select sha2("binzi",512);
--crc32加密:
select crc32("binzi"); -- 3221865747
-- 当前环境相关的
select current_user(),logged_in_user(),current_database(),version();