当前位置: 代码迷 >> XML/SOAP >> FOR XML PATH实现如意算盘
  详细解决方案

FOR XML PATH实现如意算盘

热度:134   发布时间:2016-05-23 01:55:49.0
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;    

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

(本文完)

  相关解决方案
本站暂不开放注册!
内测阶段只得通过邀请码进行注册!
 
  • 最近登录:Mon Dec 10 21:23:43 CST 2018
  • 最近登录:Mon Dec 10 21:23:43 CST 2018
  • 最近登录:Mon Dec 10 21:23:43 CST 2018
  • 最近登录:Mon Dec 10 21:23:43 CST 2018
  • 最近登录:Mon Dec 10 21:23:43 CST 2018