zoukankan      html  css  js  c++  java
  • 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;    

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

    (本文完)

  • 相关阅读:
    Vue.js的组件化思想--下
    Vue.js的组件化思想--上
    Git常用命令总结
    vue基础语法
    ES6基础语法
    Vue笔记
    Vue的基本使用(一)
    es6的基本用法
    Django-admin管理工具
    Django组件-中间件
  • 原文地址:https://www.cnblogs.com/boss-he/p/4534152.html
Copyright © 2011-2022 走看看