查询从SQL Server中的字符串返回子字符串

时间:2013-06-28 02:55:22

标签: sql sql-server substring user-defined-functions

我在Microsoft SQL Server中的标量值函数下有一个名为Sync_CheckData的用户定义函数。实际做的是检查已发布产品的数量和余额数量是否相同。如果出现问题,请返回ErrorStr nvarchar(255)

输出示例:

Balance Stock Error for Product ID : 4

从上面的字符串中,我想获得4,以便稍后我可以使用WHERE子句(WHERE Product_ID = 4)来选择产生错误的行。

我可以使用哪个SQL函数来获取substring

3 个答案:

答案 0 :(得分:3)

试试这个

DECLARE @STR AS VARCHAR(1000)
SELECT @STR='Balance Stock Error for Product ID : 4'

SELECT substring(@STR,charINDEX(':',@STR)+1,LEN(@STR)-charINDEX(':',@STR)+1)

答案 1 :(得分:1)

我会使用RIGHT

declare @response varchar(100)
set @response = 'Balance Stock Error for Product ID : 4'

select right(@response, len(@response) - charindex(':', @response))

示例小提琴:http://sqlfiddle.com/#!3/d41d8/16397(从上面改变)

答案 2 :(得分:1)

试试这个

DECLARE @String VARCHAR(100)

SET @String = 'Balance Stock Error for Product ID : 4'

SELECT RIGHT(@string, CHARINDEX(':', REVERSE(@string))-2)

OR

SELECT RIGHT(@string,(LEN(@string)+1)-PATINDEX('%[0-9]%', @string))
相关问题