日期:2014-05-18 浏览次数:20654 次
with cte as ( select 1 n union all select n+1 from cte where n<9 ) select t2.n , stuff(( select ', ' + cast(t2.n as char(1)) + 'x'+ cast(n as char(1)) + '=' + cast(t2.n*n as char(2)) from cte where (n <= t2.n) for xml path ('')),1,2,'') from cte t1 left join cte t2 on t1.n >= t2.n group by t2.n /* result 1x1=1 2x1=2 , 2x2=4 3x1=3 , 3x2=6 , 3x3=9 4x1=4 , 4x2=8 , 4x3=12, 4x4=16 5x1=5 , 5x2=10, 5x3=15, 5x4=20, 5x5=25 6x1=6 , 6x2=12, 6x3=18, 6x4=24, 6x5=30, 6x6=36 7x1=7 , 7x2=14, 7x3=21, 7x4=28, 7x5=35, 7x6=42, 7x7=49 8x1=8 , 8x2=16, 8x3=24, 8x4=32, 8x5=40, 8x6=48, 8x7=56, 8x8=64 9x1=9 , 9x2=18, 9x3=27, 9x4=36, 9x5=45, 9x6=54, 9x7=63, 9x8=72, 9x9=81 */