首页 > 开发 > XML > 正文

FOR XML PATH实现小九九

2024-07-21 02:46:56
字体:
来源:转载
供稿:网友
FOR xml PATH实现小九九

数据库环境:SQL SERVER2008R2

今天我们用SQL实现一下九九乘法表的功能。

实现的逻辑不是很复杂,难点在于怎么把想要的内容从同一列里头拼接到同一行上。

在这里,我们用到了FOR XML PATH,FOR XML的用法,可以到MSDN去看,这里就不细讲了。

/*数据准备,生成自然数1-9*/WITH    x0          AS ( SELECT   id               FROM     t100               WHERE    id <= 9             ),/*生成所有可能的乘法组合*/        x1          AS ( SELECT   a.id AS aid ,                        b.id AS bid ,                        CONVERT(VARCHAR(1), a.id) + ' * '                        + CONVERT(VARCHAR(1), b.id) + ' = '                        + CONVERT(VARCHAR(2), a.id * b.id) AS result               FROM     x0 a ,                        x0 b               WHERE    a.id <= b.id             )    /*把被乘数相同的转到同一行上*/    SELECT  result    FROM    ( SELECT    bid ,                        ( SELECT    '  ' + result AS [text()]                          FROM      x1 AS t2                          WHERE     t2.bid = t1.bid                        FOR                          XML PATH('')                        ) AS result              FROM      x1 AS t1              GROUP BY  bid            ) t;    

相关的说明已经在代码里进行注释。最后,附上结果图。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表