TRIM 标量函数 (scalar function)

TRIM函数可以从字符串表达式的开头、结尾或两端删除字节。

阅读语法图跳过可视化语法图TRIM( BOTHBLEADINGLTRAILINGT恒定修剪FROM 字符串表达式)

该模式是 SYSIBM。

第一个参数(如果指定)指示字符是从字符串的末尾还是从开头删除。 如果第一个参数未指定,字符将从字符串的开头和结尾处删除。

恒定修剪
指定一个常量,指示要删除的二进制、SBCS或DBCS字符。 如果字符串表达式是一个字符串,则修剪常量必须是一个SBCS或DBCS单字符(2字节)常量。 如果字符串表达式是一个二进制字符串,则修剪常量必须是一个单字节二进制字符串常量。 如果字符串表达式是DBCS图形或仅DBCS字符串, 则trim-constant 必须是一个由单个DBCS字符组成的图形常量。

修剪常数的默认值取决于字符串表达式的数据类型:

  • 如果字符串表达式是DBCS图形字符串,则为DBCS空白。 对于ASCII,CCSID确定表示DBCS空格的十六进制值。 例如,对于日语(CCSID 301 ),X'8140' 代表DBCS空格,而对于简体中文, X'A1A1' 代表一个双字节字符集空格。 对于EBCDIC, X'4040' 代表一个DBCS空白。
  • 如果字符串表达式是Unicode图形字符串,则 UTF-16 或 UCS-2 为空 (X'0020' )。
  • 如果字符串表达式是二进制字符串,则值为 X'00'
  • 否则,一个空字节。 对于EBCDIC, X'40' 代表空白。 当不是EBCDIC时, X'20' 表示空白。
字符串表达式
返回内置字符串数据类型、图形数据类型、二进制字符串数据类型或数字数据类型的值的表达式。 字符串表达式不能是LOB。 如果字符串表达式是数字,则在函数计算前转换为字符串。 有关将数字转换为字符串的更多信息,请参阅 VARCHAR标量函数

字符串表达式修剪表达式必须具有兼容的数据类型。

结果的数据类型取决于字符串表达式的数据类型:

  • 如果字符串表达式是字符串数据类型,则结果为VARCHAR。 如果字符串表达式被定义为“位数据”,则结果为“位数据”。
  • 如果字符串表达式是图形字符串数据类型,则结果为VARGRAPHIC。
  • 如果字符串表达式是二进制字符串数据类型,则结果为VARBINARY。

结果的长度属性与字符串表达式的长度属性相同。 结果的实际长度为字符串表达式长度减去删除的字符数。 如果删除所有字符,结果为空字符串。

如果字符串表达式可以为空,则结果可以为空;如果字符串表达式为空,则结果为空值。

结果的CCSID与字符串表达式的 CCSID相同。

注意

更改开始EBCDIC混合字符串输入的有效内容:更改结束
更改开始如果字符串表达式是EBCDIC混合字符串,则该字符串必须包含有效的EBCDIC混合数据。更改结束

示例

示例 :假设主机变量 HELLO 的类型为CHAR(9),其值为“Hello”。
SELECT TRIM(:HELLO), TRIM(TRAILING FROM :HELLO)
		FROM SYSIBM.SYSDUMMY1

结果分别为“Hello ”和“ Hello ”。

示例 :假设类型为 CHAR(9) 的宿主变量 BALANCE 的值为 ' 000345.50 '。
SELECT TRIM(L '0' FROM :BALANCE)
		FROM SYSIBM.SYSDUMMY1

结果为 '345.50'