パーサー機能の助けを借りて。
Declare @str nvarchar(1000)
set @Str = 'Process of submitting the bill id: AS12345 is send back to Customer. Bill id:WE23456 and Bill id: AS12345 came from customers'
-- Clean and Normalize String
Set @Str = Replace(Replace(Replace(@Str,'Bill id','BILLID'),'BILLID :','BILLID:'),'BILLID: ','BILLID:')
Select Distinct BillID=Replace(Key_Value,'BILLID:','')
From [dbo].[udf-Str-Parse](@Str,' ')
Where Key_Value Like 'BILLID%'
戻り
BillID
AS12345
WE23456
UDF
ALTER FUNCTION [dbo].[udf-Str-Parse] (@String varchar(max),@Delimeter varchar(10))
--Usage: Select * from [dbo].[udf-Str-Parse]('Dog,Cat,House,Car',',')
-- Select * from [dbo].[udf-Str-Parse]('John Cappelletti was here',' ')
-- Select * from [dbo].[udf-Str-Parse]('id26,id46|id658,id967','|')
-- Select * from [dbo].[udf-Str-Parse]('hello world. It. is. . raining.today','.')
Returns @ReturnTable Table (Key_PS int IDENTITY(1,1), Key_Value varchar(max))
As
Begin
Declare @XML xml;Set @XML = Cast('<x>' + Replace(@String,@Delimeter,'</x><x>')+'</x>' as XML)
Insert Into @ReturnTable Select Key_Value = ltrim(rtrim(String.value('.', 'varchar(max)'))) FROM @XML.nodes('x') as T(String)
Return
End
あなたはこれをどうするかをしたいですか? –
私は文字列から請求書IDを選択する必要があります。 – goofyui
あなたのコードに問題があるのを見たこともありません。その罰金を返して、billidを返します。 –