日期:2014-05-18  浏览次数:20499 次

这种数据抽取怎么实现?按规定增加了行数的
源(列C只有正整数):
列:A B C
值:a b 3

抽取后的目标:
列:A B C
值:a b 1
  a b 1
  a b 1

------解决方案--------------------
要保证你的从表的函数大于等于C的最大值。
[master].dbo.spt_values 只有2000多。如果你C更大,就用别的方式取

SQL code

DECLARE @A TABLE (A CHAR,B CHAR,C INT)

INSERT INTO @A(A,B,C)
SELECT 'a','b',3 UNION ALL
SELECT 'c','d',2 UNION ALL
SELECT 'e','f',4

SELECT A,B,1
FROM @A a JOIN [master].dbo.spt_values b ON 1=1
WHERE b.[type] = 'P' AND b.number < a.C

A    B    
---- ---- -----------
a    b    1
a    b    1
a    b    1
c    d    1
c    d    1
e    f    1
e    f    1
e    f    1
e    f    1

(9 行受影响)