选择特定字符右侧的所有内容

时间:2019-05-17 13:39:36

标签: sql advantage-database-server

提供此数据:

Home: (708) 296-2112  

我希望所有内容都位于:字符的右侧。

这是我到目前为止的内容,但是没有任何结果:

right(phone1, locate(':', phone1 + ':')-1) phone

如果我使用left而不是right,我只会得到“ HOME”-仅用于测试目的。我知道我已经接近了,但是我想念一些东西。

4 个答案:

答案 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))