私はID
varcharとして持っています。リストをint32に変換する必要がある後、コンマとして分割する必要があります。以下のような例を追加しました。
DECLARE @List varchar(255)
SET @List = '1, 2, 3, 4, 5, 6'
print @List
私はID
varcharとして持っています。リストをint32に変換する必要がある後、コンマとして分割する必要があります。以下のような例を追加しました。
DECLARE @List varchar(255)
SET @List = '1, 2, 3, 4, 5, 6'
print @List
次のようなものを試すことができます:
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() 関数の注記セクションをお読みください)。