0

私はIDvarcharとして持っています。リストをint32に変換する必要がある後、コンマとして分割する必要があります。以下のような例を追加しました。

DECLARE @List varchar(255)

SET @List = '1, 2, 3, 4, 5, 6'

print @List
4

2 に答える 2

0

次のようなものを試すことができます:

DECLARE @List varchar(255) = '1, 2, 23, 4, 5, 6'

DECLARE @X XML
SELECT @X  = '<myxml><nodes><n>' + 
              REPLACE(@List,',','</n></nodes><nodes><n>') + 
             '</n></nodes></myxml>'

--SELECT @X

SELECT LTRIM(C.value('n[1]','VARCHAR(50)')) AS item1
FROM @X.nodes('/myxml/nodes') Cols (C)

フィドルのデモ

結果:

| ITEM1 |
--------|--
|     1 |
|     2 |
|    23 |
|     4 |
|     5 |
|     6 |

注: サンプル データ ( 2 3)に従って数字の間にスペースがある場合はReplace()、INT に変換する前に関数を使用してスペースを削除できます。IsNumeric()関数も役立つ場合があります (詳細については、isnumeric() 関数の注記セクションをお読みください)。

于 2013-10-02T10:42:18.843 に答える