全部产品
云市场

可变长二进制函数

更新时间:2019-08-13 22:31:19

  • LENGTH/OCTET_LENGTH:以字节为单位返回参数的长度。
  • CHAR_LENGTH/CHARACTER_LENGTH:以字符为单位返回字符串的长度。
  • ORD:如果字符串最左边的字符是多字节字符,则返回该字符的代码。
  • HEX/TO_HEX:将字符串或数字转换为十六进制形式,并返回结果。
  • UNHEX/FROM_HEX:将参数中的每对字符转换为十六进制形式,再将其转换为数字表示的字节,最后以二进制字符串形式返回结果。
  • MD5:计算参数MD5的hash值。
  • SHA/SHA1:计算字符串的SHA-1校验和。
  • CRC32:计算参数的循环冗余码。
  • LOWER/LCASE:返回参数的小写形式。
  • UPPER/UCASE:返回参数的大写形式。
  • LTRIM:移除字符串左边的空白字符。
  • RTRIM:移除字符串右边的空白字符。
  • TRIM:移除字符串左右两边的空白字符
  • COMPRESS:压缩一个字符串并将结果作为二进制字符串返回。
  • UNCOMPRESS:解压缩由COMPRESS()函数压缩的字符串。
  • UNCOMPRESSED_LENGTH:在压缩之前返回一个字符串的长度。
  • ENCRYPT:对字符串进行加密。
  • AES_ENCRYPT:使用AES算法进行数据加密。
  • AES_DECRYPT:使用AES算法进行数据解密。
  • SUBSTR:返回指定子字符串。
  • LEFT:返回字符串最左边的y个字符。
  • RIGHT:返回字符串最右边的y个字符。
  • REPEAT:返回重复指定次数的字符串。
  • REVERSE:反转字符串中的字符。
  • SHA2:计算SHA-2校验和。
  • LPAD:左拼接字符串。
  • RPAD:右拼接字符串。
  • TO_BASE64:返回字符串的BASE64编码形式。
  • FROM_BASE64:解码BASE64编码的字符串并返回结果。

LENGTH

  1. length(varbinary x)
  • 命令说明:以字节为单位返回参数x的长度。

  • 返回值类型:LONG

  • 示例:

    1. select length(CAST('abc' AS VARBINARY));
    2. +----------------------------------+
    3. | length(CAST('abc' AS varbinary)) |
    4. +----------------------------------+
    5. | 3 |

CHAR_LENGTH

  1. char_length(varbinary x)
  • 命令说明:以字符为单位返回字符串x的长度。

  • 返回值类型:LONG

  • 示例:

    1. select char_length(CAST('abc' AS VARBINARY));
    2. +---------------------------------------+
    3. | char_length(CAST('abc' AS varbinary)) |
    4. +---------------------------------------+
    5. | 3 |

ORD

  1. ord(varbinary x)
  • 命令说明:如果字符串x最左边的字符是多字节字符,则返回该字符的代码。

  • 返回值类型:LONG

  • 示例:

    1. select ord(CAST('中国' AS VARBINARY));
    2. +----------------------------------+
    3. | ord(CAST('中国' AS varbinary)) |
    4. +----------------------------------+
    5. | 228 |

HEX

  1. hex(varbinary x)
  • 命令说明:将字符串x或数字转换为十六进制格式的字符串。

  • 返回值类型:VARCHAR

  • 示例:

    1. select hex(CAST('中国' AS VARBINARY));
    2. +----------------------------------+
    3. | hex(CAST('中国' AS varbinary)) |
    4. +----------------------------------+
    5. | E4B8ADE59BBD |

UNHEX

  1. unhex(varbinary x)
  • 命令说明:将参数x中的每对字符解释为十六进制数,并将其转换为数字表示的字节,以二进制字符串将其返回。

  • 返回值类型:VARBINARY

  • 示例:

    1. select unhex(CAST('中国' AS VARBINARY));
    2. +------------------------------------+
    3. | unhex(CAST('中国' AS varbinary)) |
    4. +------------------------------------+
    5. | NULL |

MD5

  1. md5(varbinary x)
  • 命令说明:返回参数xMD5的hash值。

  • 返回值类型:VARCHAR

  • 示例:

    1. select md5(CAST('中国' AS VARBINARY));
    2. +----------------------------------+
    3. | md5(CAST('中国' AS varbinary)) |
    4. +----------------------------------+
    5. | c13dceabcb143acd6c9298265d618a9f |

SHA1

  1. sha1(varbinary x)
  • 命令说明:计算字符串x的SHA-1校验和。

  • 返回值类型:VARCHAR

  • 示例:

    1. select sha1(CAST('中国' AS VARBINARY));
    2. +------------------------------------------+
    3. | sha1(CAST('中国' AS varbinary)) |
    4. +------------------------------------------+
    5. | 101806f57c322fb403a9788c4c24b79650d02e77 |

CRC32

  1. crc32(varbinary x)
  • 命令说明:返回参数x的循环冗余码。

  • 返回值类型:LONG

  • 示例:

    1. select crc32(CAST('中国' AS VARBINARY));
    2. +------------------------------------+
    3. | crc32(CAST('中国' AS varbinary)) |
    4. +------------------------------------+
    5. | 737014929 |

LOWER

  1. lower(varbinary x)
  • 命令说明:返回参数x的小写形式。

  • 返回值类型:VARBINARY

  • 示例:

    1. select lower(CAST('ABC' AS VARBINARY));
    2. +---------------------------------+
    3. | lower(CAST('ABC' AS varbinary)) |
    4. +---------------------------------+
    5. | abc |

UPPER

  1. upper(varbinary x)
  • 命令说明:返回参数x的大写形式。

  • 返回值类型:VARBINARY

  • 示例:

    1. select upper(CAST('abc' AS VARBINARY));
    2. +---------------------------------+
    3. | upper(CAST('abc' AS varbinary)) |
    4. +---------------------------------+
    5. | ABC |

LTRIM

  1. ltrim(varbinary x)
  • 命令说明:移除字符串x左边的空白字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select ltrim(CAST(' 中国 ' AS VARBINARY));
    2. +----------------------------------------+
    3. | ltrim(CAST(' 中国 ' AS varbinary)) |
    4. +----------------------------------------+
    5. | 中国 |

RTRIM

  1. rtrim(varbinary x)
  • 命令说明:移除字符串x右边的空白字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select rtrim(CAST(' 中国 ' AS VARBINARY));
    2. +----------------------------------------+
    3. | rtrim(CAST(' 中国 ' AS varbinary)) |
    4. +----------------------------------------+
    5. | 中国 |

TRIM

  1. trim(varbinary x)
  • 命令说明:移除字符串x左右两边的空白字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select trim(CAST(' 中国 ' AS VARBINARY));
    2. +---------------------------------------+
    3. | trim(CAST(' 中国 ' AS varbinary)) |
    4. +---------------------------------------+
    5. | 中国 |

COMPRESS

  1. compress(varbinary x)
  • 命令说明:压缩字符串x并将结果作为二进制字符串返回。

  • 返回值类型:VARBINARY

  • 示例:

    1. select hex(compress(CAST('中国' AS VARBINARY)));
    2. +--------------------------------------------+
    3. | hex(compress(CAST('中国' AS varbinary))) |
    4. +--------------------------------------------+
    5. | 06000000789C7BB263EDD3D97B01104C0487 |

UNCOMPRESS

  1. uncompress(varbinary x)
  • 命令说明:解压缩x由COMPRESS()函数压缩的字符串。

  • 返回值类型:VARBINARY

  • 示例:

    1. select uncompress(compress(CAST('中国' AS VARBINARY)));
    2. +---------------------------------------------------+
    3. | uncompress(compress(CAST('中国' AS varbinary))) |
    4. +---------------------------------------------------+
    5. | 中国 |

UNCOMPRESSED_LENGTH

  1. uncompressed_length(varbinary x)
  • 命令说明:在压缩之前返回字符串x的长度。

  • 返回值类型:LONG

  • 示例:

    1. select uncompressed_length(compress(CAST('中国' AS VARBINARY)));
    2. +------------------------------------------------------------+
    3. | uncompressed_length(compress(CAST('中国' AS varbinary))) |
    4. +------------------------------------------------------------+
    5. | 6 |

ENCRYPT

  1. encrypt(varbinary x, varchar y)
  • 命令说明:对参数x进行加密,y为Salt值。

  • 返回值类型:VARBINARY

  • 示例:

    1. select encrypt('abdABC123','key');
    2. +-----------------------------+
    3. | encrypt('abdABC123', 'key') |
    4. +-----------------------------+
    5. | kezazmcIo.aCw |

AES_ENCRYPT

  1. aes_encrypt(varbinary x, varchar y)
  • 命令说明:使用AES算法加密xy为密钥。

  • 返回值类型:VARBINARY

  • 示例:

    1. select HEX(aes_encrypt(CAST('中国' AS VARBINARY), '0123'));
    2. +-------------------------------------------------------+
    3. | HEX(aes_encrypt(CAST('中国' AS VARBINARY), '0123')) |
    4. +-------------------------------------------------------+
    5. | DFB166F0A03113AA848C0CE545D58757 |

AES_DECRYPT

  1. aes_decrypt(varbinary x, varchar y)
  • 命令说明:使用AES算法解密xy为密钥。

  • 返回值类型:VARBINARY

  • 示例:

    1. select aes_decrypt(aes_encrypt(CAST('中国' AS VARBINARY), '0123'),'0123');
    2. +-----------------------------------------------------------------------+
    3. | aes_decrypt(aes_encrypt(CAST('中国' AS varbinary), '0123'), '0123') |
    4. +-----------------------------------------------------------------------+
    5. | 中国 |

SUBSTR

  1. substr(varbinary x, bigint y, double z)
  2. substr(varbinary x, double y, double z)
  3. substr(varbinary x, bigint y, bigint z)
  4. substr(varbinary x, double y, bigint z)
  5. substr(varbinary x, double y)
  6. substr(varbinary x, bigint y)
  • 命令说明:返回指定子字符串。

  • 返回值类型:VARBINARY

  • 示例:

    1. select HEX(substr(CAST('中国' AS VARBINARY), 2));
    2. +---------------------------------------------+
    3. | HEX(substr(CAST('中国' AS VARBINARY), 2)) |
    4. +---------------------------------------------+
    5. | B8ADE59BBD |
    6. +---------------------------------------------+
    1. +----------------------------------------------------+
    2. | HEX(substr(CAST('中国' AS VARBINARY), 2.7, 1.7)) |
    3. +----------------------------------------------------+
    4. | ADE5 |
    5. +----------------------------------------------------+

LEFT

  1. left(varbinary x, bigint y)
  2. left(varbinary x, double y)
  • 命令说明:返回字符串x最左边的y个字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select left(CAST('中国' AS VARBINARY),1000);
    2. +-----------------------------------------+
    3. | LEFT(CAST('中国' AS VARBINARY), 1000) |
    4. +-----------------------------------------+
    5. | 中国 |

RIGHT

  1. right(varbinary x, bigint y)
  2. right(varbinary x, double y)
  • 命令说明:返回字符串x最右边的y个字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select HEX(right(CAST('中国' AS VARBINARY),1));
    2. +--------------------------------------------+
    3. | HEX(RIGHT(CAST('中国' AS VARBINARY), 1)) |
    4. +--------------------------------------------+
    5. | BD |

REPEAT

  1. repeat(varbinary x, double y)
  2. repeat(varbinary x, bigint y)
  • 命令说明:返回重复指定次数y的字符串x

  • 返回值类型:VARBINARY

  • 示例:

    1. select HEX(repeat(CAST('中国' AS VARBINARY),1));
    2. +---------------------------------------------+
    3. | HEX(repeat(CAST('中国' AS VARBINARY), 1)) |
    4. +---------------------------------------------+
    5. | E4B8ADE59BBD |

REVERSE

  1. reverse(varbinary x)
  • 命令说明:反转字符串x中的字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select HEX(reverse(CAST('中国' AS VARBINARY)));
    2. +-------------------------------------------+
    3. | HEX(reverse(CAST('中国' AS VARBINARY))) |
    4. +-------------------------------------------+
    5. | BD9BE5ADB8E4 |

SHA2

  1. sha2(varbinary x, integer y)
  2. sha2(varbinary x, varchar y)
  • 命令说明:计算字符串xSHA-2系列散列函数(SHA-224、SHA-256、SHA-384和SHA-512)。x是要清理的明文字符串,y表示结果所需的位数长度,其值必须为224、256、384、512或0。

  • 返回值类型:VARCHAR

  • 示例:

    1. select sha2(CAST('中国' AS VARBINARY),256);
    2. +------------------------------------------------------------------+
    3. | sha2(CAST('中国' AS varbinary), 256) |
    4. +------------------------------------------------------------------+
    5. | f0e9521611bb290d7b09b8cd14a63c3fe7cbf9a2f4e0090d8238d22403d35182 |

LPAD

  1. lpad(varbinary x, bigint y, varchar z)
  2. lpad(varbinary x, double y, varchar z)
  • 命令说明:将字符串x左边拼接字符串z直到长度达到y,并返回拼接后的字符串。

    如果x长于y,则返回值将缩短为y个字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select HEX(lpad(CAST('中国' AS VARBINARY), 7,'-'));
    2. +------------------------------------------------+
    3. | HEX(lpad(CAST('中国' AS VARBINARY), 7, '-')) |
    4. +------------------------------------------------+
    5. | 2DE4B8ADE59BBD |

RPAD

  1. rpad(varbinary x, bigint y, varchar z)
  2. rpad(varbinary x, double y, varchar z)
  • 命令说明:将字符串x右边拼接字符串z直到长度达到y,并返回拼接后的字符串。

    如果x长于y,则返回值将缩短为y个字符。

  • 返回值类型:VARBINARY

  • 示例:

    1. select HEX(rpad(CAST('中国' AS VARBINARY), 4.7,'x'));
    2. +--------------------------------------------------+
    3. | HEX(rpad(CAST('中国' AS VARBINARY), 4.7, 'x')) |
    4. +--------------------------------------------------+
    5. | E4B8ADE59B |

TO_BASE64

  1. to_base64(varbinary x)
  • 命令说明:返回字符串x的BASE64编码形式。

  • 返回值类型:VARCHAR

  • 示例:

    1. select to_base64(CAST('中国' AS VARBINARY));
    2. +----------------------------------------+
    3. | to_base64(CAST('中国' AS varbinary)) |
    4. +----------------------------------------+
    5. | 5Lit5Zu9 |

FROM_BASE64

  1. from_base64(varbinary x)
  • 命令说明:解码BASE64编码的字符串x并返回结果。

  • 返回值类型:VARBINARY

  • 示例:

    1. select from_base64(to_base64(CAST('abc' AS VARBINARY)));
    2. +--------------------------------------------------+
    3. | from_base64(to_base64(CAST('abc' AS varbinary))) |
    4. +--------------------------------------------------+
    5. | abc |