あなたが結果セットにカウンターを追加し、うまく
- が
YourTable
からすべての行を選択して仕事をするだろう再帰CTE
を使用して、SQL Serverを使用していると仮定。指定した列の
- 再帰カウンタが
col2
SQLステートメント
;WITH q AS (
SELECT col1, cnt = 1
FROM YourTable
UNION ALL
SELECT q.col1, cnt + 1
FROM q
INNER JOIN YourTable yt ON yt.col1 = q.col1
WHERE cnt < yt.col2
)
SELECT col1
FROM q
OPTION (MAXRECURSION 0)
テストスクリプトあなたが与えられていないとして
;WITH YourTable(col1, col2) AS (
SELECT 'apple', 4
UNION ALL SELECT 'melon', 1
UNION ALL SELECT 'banana', 2
)
, q AS (
SELECT col1, cnt = 1
FROM YourTable
UNION ALL
SELECT q.col1, cnt + 1
FROM q
INNER JOIN YourTable yt ON yt.col1 = q.col1
WHERE cnt < yt.col2
)
SELECT col1
FROM q
OPTION (MAXRECURSION 0)
おはなしい神。彼らは今何をしたのですか – bernie
これは何のSQLエンジンですか? MySQL? SQLサーバー?オラクル? DB2? – mellamokb
「グループ化解除」機能... – Glenn