次のようなストアドプロシージャへの入力値を指定します。
264#20,241#15,228#10
これを以下のようにテーブルに変換するにはどうすればよいですか?
ID1 ID2
264 20
241 15
228 10
ありがとう
次のようなストアドプロシージャへの入力値を指定します。
264#20,241#15,228#10
これを以下のようにテーブルに変換するにはどうすればよいですか?
ID1 ID2
264 20
241 15
228 10
ありがとう
ストアドプロシージャでは、次のようなものを使用できます。
;with cte (item, col1) as
(
select
cast(left(col1, charindex(',',col1+',')-1) as varchar(50)) item,
stuff(col1, 1, charindex(',',col1+','), '') col1
from yourtable
union all
select
cast(left(col1, charindex(',',col1+',')-1) as varchar(50)) item,
stuff(col1, 1, charindex(',',col1+','), '') col1
from cte
where col1 > ''
),
s2 (id1, id2) as
(
select substring(item, 1, charindex('#', item)-1),
reverse(substring(reverse(item), 1, charindex('#', reverse(item))-1))
from cte
)
select id1, id2
from s2
SQL FiddlewithDemoを参照してください
結果:
| ID1 | ID2 |
-------------
| 264 | 20 |
| 241 | 15 |
| 228 | 10 |