我的要求是這樣的。我有3列& 1排。SQL查詢將1值拆分爲3行
Column A -> Value a
Column B -> Value b
Column C -> Value 123
我必須拆分C列中的值,並從中獲取3行,並從另一列中複製值。我必須得到3行,它應該是這樣的:
Column A -> Value a , a , a
Column B -> Value b , b , b
Column C -> Value 1, 2, 3
任何想法?
我的要求是這樣的。我有3列& 1排。SQL查詢將1值拆分爲3行
Column A -> Value a
Column B -> Value b
Column C -> Value 123
我必須拆分C列中的值,並從中獲取3行,並從另一列中複製值。我必須得到3行,它應該是這樣的:
Column A -> Value a , a , a
Column B -> Value b , b , b
Column C -> Value 1, 2, 3
任何想法?
試試這個:
create table test(cola varchar(10),colb varchar(10),colc varchar(10))
insert into test select 'a','b','123'
;WITH CTE AS(
select cola,colb,LEFT(colc,1) colc,RIGHT(colc,len(colc)-1) as rem from test
union all
select cola,colb,LEFT(rem,1) colc,RIGHT(rem,len(rem)-1) as rem from CTE
where LEN(rem) >= 1
)
select cola,colb,colc from CTE
+1 - This可以正常工作,但是我會在查詢結尾添加「OPTION(MAXRECURSION 100)」或其他值的子句 – Lamak
如果columnC中的值長度超過100,該怎麼辦? – AnandPhadke
這只是一個例子。實際上,如果您不添加該提示,則默認值爲100,因此您當前的查詢僅限於此。如果你不想限制遞歸級別,那麼你需要添加'OPTION(MAXRECURSION 0)' – Lamak
搜索 '支點條款'。這會幫助你一點,並從哪裏開始給你一個想法。另外,你使用的是什麼sql-server版本? –
謝謝!我使用的是SQL Server 2012 ... – Nenad
不錯,從2005年開始soported從句,我想.. –