📅  最后修改于: 2021-01-11 11:28:28             🧑  作者: Mango
Teradata SUBSTRING或SUBSTR函数是Teradata字符串函数之一,用于根据其位置从字符串剪切子字符串。
SUBSTR或SUBSTRING在Teradata中的工作方式相同。但是语法可能有所不同。
对于Teradata SUBSTRING,我们使用ANSI语法;对于Teradata SUBSTR,我们使用Teradata语法。 ANSI语法旨在与其他数据库系统兼容。
句法
SUBSTRING (, , [] )
要么
SUBSTRING ( FROM FOR )
SUBSTRING和SUBSTR对以下类型的参数进行操作:
如果string_expression参数为数字,则将用户定义类型(UDT)隐式转换为以下任何预定义类型:
要为UDT定义隐式转换,我们使用CREATE CAST语句并指定AS ASSIGNMENT子句。
用于系统运算符和函数(包括SUBSTRING和SUBSTR)的UDT的隐式类型转换是对ANSI SQL标准的Teradata扩展。要禁用此扩展,请将DBS控制记录的DisableUDTImplCastForSysFuncOp字段设置为TRUE。
这是SUBSTR和SUBSTRING的默认结果类型和属性,例如:
如果字符串参数是:
在ANSI模式中,n为所得BLOB(n)的数值,VARBYTE(N),CLOB(N),或VARCHAR(n)是一样的原始字符串。
在Teradata模式下,结果类型的n值取决于结果字符串的字符数或字节数。要获得结果字符串的数据类型,我们可以使用TYPE函数。
SUBSTR函数是原始的Teradata子字符串操作。它被编写为与DB / 2兼容。
SUBSTRING函数的长度是可选的。如果不包括在内,则返回到该列末尾的所有剩余字符。在Teradata的早期版本中,SUBSTR在允许的值上有更多限制。这种情况增加了由于意外的数据或成本导致SQL语句失败的可能性。