MASK
更新时间:2025-10-17
描述
MASK 函数主要作用是对数据进行屏蔽,以保护敏感信息,常用于数据脱敏场景。其行为默认是将输入的字符串中的大写字母转换为X,小写字母转换为x,数字转换为n。
语法
SQL
1MASK(<str> [, <upper> [, <lower> [, <number> ]]])
参数
| 参数 | 说明 |
|---|---|
<str> |
需要被脱敏的数据 |
<upper> |
可选参数,替换大写字母字符,默认是X。如果输入多个字符串,则会取第一个字符,如果输入的是非 ASCII 字符,则会取第一个字节 |
<lower> |
可选参数,替换小写字母字符,默认是x。如果输入多个字符串,则会取第一个字符,如果输入的是非 ASCII 字符,则会取第一个字节 |
<number> |
可选参数,替换数字字符,默认是n。如果输入多个字符串,则会取第一个字符,如果输入的是非 ASCII 字符,则会取第一个字节 |
返回值
返回字母和数字被替换后的字符串。特殊情况:
- 任意参数中有一个为 NULL,则返回 NULL
- 非字母和数字会原样返回
举例
SQL
1select mask('abc123EFG');
Text
1+-------------------+
2| mask('abc123EFG') |
3+-------------------+
4| xxxnnnXXX |
5+-------------------+
SQL
1select mask(null);
Text
1+------------+
2| mask(NULL) |
3+------------+
4| NULL |
5+------------+
SQL
1select mask('abc123EFG', '*', '#', '$');
Text
1+----------------------------------+
2| mask('abc123EFG', '*', '#', '$') |
3+----------------------------------+
4| ###$$$*** |
5+----------------------------------+
