Sql 字符后带字符串
您好,我有一个列,它的字符串值看起来像Sql 字符后带字符串,sql,teradata,Sql,Teradata,您好,我有一个列,它的字符串值看起来像test(test):5,我想去掉:后面的所有内容,包括这个字符 我有以下sql,并不断收到此错误: [Teradata数据库][TeraJDBC 14.10.00.26][Error 3706][SQLState 42000]语法错误:应在“(”和字符串“:”之间 有人能帮忙吗 谢谢我认为这是正确的……至少在sql server中是这样……对teradata不太确定 SELECT SUBSTRING(blah, 0, LEN(blah) - CHARIN
test(test):5
,我想去掉:
后面的所有内容,包括这个字符
我有以下sql,并不断收到此错误:
[Teradata数据库][TeraJDBC 14.10.00.26][Error 3706][SQLState 42000]语法错误:应在“(”和字符串“:”之间
有人能帮忙吗
谢谢我认为这是正确的……至少在sql server中是这样……对teradata不太确定
SELECT SUBSTRING(blah, 0, LEN(blah) - CHARINDEX (':', blah))
我认为这是正确的…至少在sql server中是这样…对teradata不太确定
SELECT SUBSTRING(blah, 0, LEN(blah) - CHARINDEX (':', blah))
我相信这将在Teradata上对您起作用:
SELECT SUBSTRING(blah FROM 1 FOR (POSITION(';' in blah) - 1));
我相信这将在Teradata上对您起作用:
SELECT SUBSTRING(blah FROM 1 FOR (POSITION(';' in blah) - 1));
Teradata不支持15.10之前的
LEFT
string函数,但这不能是负值。CHAR\u INDEX
是SQL Server专有语法,POSITION
是标准SQL/Teradata:
SELECT SUBSTRING(blah FROM 1 FOR (POSITION(';' in blah) - 1));
-- will fail if there's no ':' because FOR must be >= 0
SUBSTRING(blah FROM 1 FOR (POSITION('0' in blah) - 1))
-- will work because FROM might be negative, too
SUBSTRING(blah FROM 0 FOR (POSITION('0' in blah)))
如果没有”,您希望返回什么:“
子字符串将返回空字符串,如果希望使用完整字符串,请使用:
-- tokenize the string and return the 1st token
STRTOK(blah, ':', 1)
Teradata不支持15.10之前的
LEFT
string函数,但这不能是负值。CHAR\u INDEX
是SQL Server专有语法,POSITION
是标准SQL/Teradata:
SELECT SUBSTRING(blah FROM 1 FOR (POSITION(';' in blah) - 1));
-- will fail if there's no ':' because FOR must be >= 0
SUBSTRING(blah FROM 1 FOR (POSITION('0' in blah) - 1))
-- will work because FROM might be negative, too
SUBSTRING(blah FROM 0 FOR (POSITION('0' in blah)))
如果没有”,您希望返回什么:“
子字符串将返回空字符串,如果希望使用完整字符串,请使用:
-- tokenize the string and return the 1st token
STRTOK(blah, ':', 1)