2

SQL 関数を使用するプロジェクトに問題があります。

DECLARE @Var1 varchar(8000) = '{strong} this is strong{/strong} this is not strong.';

DECLARE @Var2 varchar(8000)

'{strong}'文字列を と の間で移動'{/strong}'@Var2て、この結果を得たい場合

@Var1 = 'this is not strong.' 
@Var2 = '{strong} this is strong {/strong}' 

どうすればいいですか??

PS:私はまだSQLに慣れていません:(

ありがとうございました

4

3 に答える 3

2

以下のクエリを試してください...それはあなたを助けるでしょう....

declare @var1 varchar(8000)
declare @var2 varchar(8000)
set @var1 ='{strong} this is strong{/strong} this is not strong.'
select @var2 = substring(@var1,charindex('{strong}',@var1)+len('{strong}'),charindex('{/strong}',@var1)-charindex('{strong}',@var1)-len('{strong}'))
SET @var1 = REPLACE(@var1,'{strong}' + @var2 + '{/strong}','')
select @var1 as Var1,@var2 as Var2
于 2013-01-31T10:07:39.943 に答える
0

LEFTRIGHTおよびCHARINDEXas;を使用します。

declare @start varchar(50)='{strong}', @end varchar(50)='{/strong}' 

select @var2 = left(@var1,charindex(@end,@var1,1)+len(@end)), 
       @var1= right(@var1,len(@var1)-(charindex(@end,@var1,1)+len(@end)))

SQL デモ 1

これは少しクレイジーですが、一般的で、一部のテキストbefore '{strong}' tagでも機能します。

declare 
@var1 varchar(100)= 'front text{strong} this is strong{/strong} this is not strong', 
@var2 varchar(100)= ''

declare @start varchar(50)='{strong}', @end varchar(50)='{/strong}' 

select @var2 = substring(myString,ci1,ci2+len(@end)-ci1), 
       @var1 = right(myString,len(myString) - (ci2+ len(@end)))
from (
    select @var1 myString, charindex(@start,@var1,1) ci1, 
           charindex(@end,@var1,charindex(@start,@var1,1)) ci2
) T  

select @var2 var2 ,@var1 var1

SQL デモ 2

--Results
VAR2                                VAR1
{strong} this is strong{/strong}    this is not strong
于 2013-01-31T10:30:49.040 に答える
0

Sqlは、このようなことをするのに最適な場所ではありません

もし私がしなければならなかったなら、誰かが私の子供たちに銃を向けたように

私はこのようなことをしますが、選択したSQLのフレーバーに合わせて調整する必要があるかもしれません

これはT-SQLです

Declare v1 VarChar(255)
Declare v2 VarChar(255)


set v1 = '{Strong}$REPLACE${/Strong}'
set v2 = 'This is strong'

Select Replace(v1,'$REPLACE$',v2)

別の方法としては、CharIndex を使用して '}{/' を検索し、Substring を使用して V1 を ('{Strong}{/Strong}' として) 切り刻み、それらを v2 と連結する必要があります。

于 2013-01-31T10:08:09.933 に答える