iT邦幫忙

1

依照數量欄位的值新增ROW

請教各位達人,如果要依照數量欄位的值去展多列,
T-SQL要如何寫

原表A的查詢结果
編碼 名稱 數量
AA 筆 5
AB 紙 5

希望根據數量新增列,结果如下
編碼 名稱 數量
AA 筆 1
AA 筆 1
AA 筆 1
AA 筆 1
AA 筆 1
AB 筆 1
AB 筆 1
AB 筆 1

jinruyeh iT邦新手 5 級 ‧ 2019-03-05 09:07:57 檢舉
GOOD

2 個回答

1
石頭
iT邦研究生 3 級 ‧ 2019-03-04 19:06:20
最佳解答

我會使用CTE遞迴 去完成

;WITH CTE AS (
	SELECT col1,1 start,col2
	FROM T
	UNION ALL
	SELECT col1,start+1,col2
	FROM CTE
	WHERE start + 1 <= col2
)
SELECT col1 as '名稱',1 as '數量'
FROM CTE

SQLFIDDLE

jinruyeh iT邦新手 5 級 ‧ 2019-03-05 09:08:34 檢舉

感謝您的解答,原來CTE也可以這樣用,又學到一招了

石頭 iT邦研究生 3 級 ‧ 2019-03-05 10:13:50 檢舉

不會^^ 很高興幫到忙

2
純真的人
iT邦高手 1 級 ‧ 2019-03-04 18:33:28

這樣?

declare @tab table(
	aa nvarchar(50)
	,bb int
)
insert into @tab
values('AA 筆',5)
,('AB 紙',5)

select aa
,1 as bb
from @tab
,(
	select Row_Number()Over(order by [number]) as Sort
	from master..spt_values
) as k
where Sort <= bb

https://ithelp.ithome.com.tw/upload/images/20190304/200613690jZeOXZiKM.png

jinruyeh iT邦新手 5 級 ‧ 2019-03-05 09:08:10 檢舉

感謝您的解答,又多學到了一招master..spt_values的用法,對我的幫助非常大

我要發表回答

立即登入回答