我对如何检索Id感到有点迷茫。我已经存储在像
这样的字符串中 Hi i am interested in sharing apartment or to rent all rooms please text me {PropertyId:43499}
我想要的部分是43499
如何在我的Sql-Server中实现此目的。
对我有用的解决方案,我编辑了我从Kavin Chakaravarthi得到的答案
DECLARE @string nvarchar(max)
SET @string = 'Hi i am interested in sharing apartment or to rent all rooms please text me {PropertyId:43499}'
select SUBSTRING(SUBSTRING(@string, CHARINDEX(':',@string) +1, DATALENGTH(@string)), 0,6)`
答案 0 :(得分:1)
使用SQL Query你可以获得单独的id:
declare @id varchar(max)='Hi i am interested in sharing apartment or to rent all rooms please text me {PropertyId:43499}'
select @id=STUFF(@id,LEN(@id),1,'')
select @id=SUBSTRING(@id,CHARINDEX(':',@id)+1,LEN(@id))
select @id
输出:
id
43499
答案 1 :(得分:1)
CREATE FUNCTION dbo.propertyidextract
(@strAlphaNumeric VARCHAR(256))
RETURNS VARCHAR(256)
AS
BEGIN
DECLARE @intAlpha INT
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
BEGIN
WHILE @intAlpha > 0
BEGIN
SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
END
END
RETURN ISNULL(@strAlphaNumeric,0)
END
GO
SELECT dbo.propertyidextract(phrase) AS 'propertyid'
FROM yourtable;
GO
这会输出您的ID
propertyid
43499
SQL FIDDLE:http://sqlfiddle.com/#!6/4c22f/12/0
答案 2 :(得分:0)
如果使用C#,
您可以从字符串中取出最后N个文本(如果ID始终位于字符串的末尾)并使用SubString
如果使用sql-server
您也可以使用SubString
,这是如何使用它的示例
http://www.techonthenet.com/sql_server/functions/substring.php
答案 3 :(得分:0)
这应该可以解决您的确切情况,如果搜索字符串的格式不同,则需要在此基础上进行构建。
declare @x varchar(100) = 'blah blah blah {PropertyId:43499}'
SELECT RIGHT(@x, LEN(@x) - CHARINDEX(':', @x))
SELECT LEFT(@x, LEN(@x) - 1)
/* or LEFT(@x, LEN(@x) - CHARINDEX('}', @x)) */