2017-07-12 7 views
-2

nvarcharをintに変換しようとしているときにカラムコメントを持つテーブルがあります。 varchar値を変換するときに変換に失敗しました。 2、9、10、25" 」データ型intに あなたたちは私を助けることができますしてくださいnvarcharをcommanとdoubleアポストロフィで変換する方法

+0

''" 2、9、10、25 "''にどのような整数値が必要ですか? –

+0

私は "2,9,10,25"のような単一の行を持っていますが、私は2,9,10,25を整数として欲しいです。私はこのvarcharをintに変換しようとしていて、その後にループを使用しています – Rab

+0

コメントは列名で、私の最初の行の値は "2,9,10,25"です。 – Rab

答えて

1

あなたは以下のように分割するために、いくつかのXML処理を行う必要があるSQL Serverの他に2016を使用している場合は、String_Splitを使用することができます。

;With cte as (
    Select xm = CAST('<x>' + REPLACE((SELECT REPLACE(REPLACE(col1,'"',''),', ','$$$SSText$$$') AS [*] FOR XML PATH('')),'$$$SSText$$$','</x><x>')+ '</x>' AS XML) 
     from #test 
) Select [Value] from cte c 
cross apply (Select y.value(N'text()[1]', N'int') as value 
FROM c.xm.nodes(N'x') as x(y)) a 

入力テーブル

create table #test (col1 nvarchar(20)) 
insert into #test (col1) values ('"2, 9, 10, 25"') 
+0

ありがとうございます@カンナン – Rab

関連する問題