SQL从值获取文本

时间:2016-07-01 16:44:50

标签: sql sql-server substring

有价值观' abcde:fg'并且' abcde'我需要删除' fg'从第一个值。到目前为止使用SQL我已经使用子字符串函数来删除' 12:'从价值' 12:abcde:fg'。遇到问题:fg'部分现在。任何帮助表示赞赏。谢谢!但是有些价值观是AA:12:abcde:fg'我将如何编辑此脚本仍然返回' abcde'这个字符串的一部分?

2 个答案:

答案 0 :(得分:0)

放手一搏。没有测试过,但应该是这样的:

DECLARE @string varchar(50) = '12:abcde:fg'
SELECT SUBSTRING(@string, charindex(':',@string) + 1, charindex(':',@string,charindex(':',@string) + 1) - (charindex(':',@string) + 1))

答案 1 :(得分:0)

假设您正在使用MS SQL,并且您希望删除之前的所有内容并包括第一个:,然后删除下一个之后的所有内容:

另一个“简单”的方法是将子串包装两次,第一个(内部)保留第一个之后的所有内容:第二个(外部)将所有内容保留在第二个之前(现在首先删除旧的第一个之后)< / p>

猜测你的领域叫做MyField:

选择substring(substring(MyField,0,charindex(':',MyField)),charindex(':',substring(MyField,0,charindex(':',MyField)))+ 1)