提供此数据:
Home: (708) 296-2112
我希望所有内容都位于:
字符的右侧。
这是我到目前为止的内容,但是没有任何结果:
right(phone1, locate(':', phone1 + ':')-1) phone
如果我使用left
而不是right
,我只会得到“ HOME”-仅用于测试目的。我知道我已经接近了,但是我想念一些东西。
答案 0 :(得分:1)
您可以改用SUBSTRING
(可能取决于您的版本,SUBSTR
)
SELECT SUBSTRING(phone1, LOCATE(':', phone1) + 1, LENGTH(phone1))
FROM yourtable
答案 1 :(得分:1)
这是一种无需在Home:
中进行硬编码的方式,因此您也可以使用Office:
或Mobile:
或Fax:
或任何其他单词后跟一个结肠。
这使用ADS的脚本功能来使用变量和内置的System.iota
单行表(类似于Oracle的dual
)。您可以只使用最后一行,将test
替换为列名,将system.iota
替换为表名。
declare test string;
set test = 'Home: (708) 296-2112';
select substring(test, position(':' in test) + 1, length(test)) from system.iota;
答案 2 :(得分:0)
您在正确的轨道上,但是代数不正确。您希望将字符串的全长减去冒号的位置,再减去一:
right(phone1, length(phone1) - locate(':', phone1) - 1)
答案 3 :(得分:0)
您可以按以下方式使用RIGHT函数:
RIGHT(phone1, LEN(phone1)-CHARINDEX(':', phone1))