0

私はこのような文字列を持っています:

DECLARE @val nvarchar(max)
set @val='id=1 and Name=abc and Address=NY and age=32' 

ここで、最初の最後まで文字列をカットする必要があります。ここでは、 idの長さは1〜100000にすることができます。したがって、長さを固定できます。
現在の状況:id=1 and Name=abc and Address=NY and age=32
期待される結果:Name=abc and Address=NY and age=32

前もって感謝します

4

5 に答える 5

2
DECLARE @val NVARCHAR(MAX)
SET @val='id=1 and Name=abc and Address=NY and age=32' 
SELECT SUBSTRING(@val, PATINDEX('% and%', @val) + 4, LEN(@val))

その他のリンク

于 2012-11-21T05:43:30.880 に答える
1
DECLARE @val nvarchar(max)
DECLARE @val1 int

set @val='id=1 and Name=abc and Address=NY and age=32' 

set @val1=CHARINDEX('Name', @val)
select val2=SUBSTRING(@val,@val1,LEN(@val)-(@val1-1))
于 2012-11-21T05:44:27.613 に答える
1

私がこのような何かの後にあなたが何であるかを正しく理解しているなら、あなたはあなたが望むようになるはずです:

substring(@val , CHARINDEX(@val) + 4, len(@val))
于 2012-11-21T05:47:59.167 に答える
1

LENSUBSTRINGメソッドを呼び出さなくても実行できると思います。

このようなものが役立ちます:

DECLARE @val nvarchar(max)
set @val='id=1 and Name=abc and Address=NY and age=32' 

Select @val as OriginalValue
select stuff(@val,1,charindex('d ',@val) + 1,'') as ExpectedResult

STUFFと一緒にメソッドを呼び出す必要がありますCHARINDEX

STUFFがどのように機能するかを確認してください。

覚えておいてください: STUFFはposition oriented(1から始まります)です。

出力は次のとおりです。

ここに画像の説明を入力してください

于 2012-11-21T06:36:44.583 に答える
0

次のような部分文字列関数を使用します

@val=substring('@val',9,'remaining char')

参照:SUBSTRING()、CHARINDEX()、PATINDEX()

ここを参照してください

http://www.sqlinfo.net/sqlserver/sql_server_function_substring.php

于 2012-11-21T05:34:32.240 に答える