zoukankan      html  css  js  c++  java
  • SQL 按表中的一个int值拆分成对应的个数的记录条数

    IF OBJECT_ID(N'tempdb..#tmp') IS NOT NULL

        DROP TABLE #tmp

       

    CREATE TABLE #tmp ( aaa VARCHAR(10), bbb INT )

    INSERT  INTO #tmp

            ( aaa, bbb )

    VALUES  ( '11111', 5 )

    INSERT  INTO #tmp

            ( aaa, bbb )

    VALUES  ( '22222', 3 )

    INSERT  INTO #tmp

            ( aaa, bbb )

    VALUES  ( '33333', 2 )

    INSERT  INTO #tmp

            ( aaa, bbb )

    VALUES  ( '44444', 1 )

    INSERT  INTO #tmp

            ( aaa, bbb )

    VALUES  ( '55555', 3 )

    --SELECT * FROM #tmp

    ;WITH    Digits

              AS ( SELECT   0 AS Number

    UNION SELECT 1

    UNION SELECT 2

    UNION SELECT 3

    UNION SELECT 4

    UNION SELECT 5

    UNION SELECT 6

    UNION SELECT 7

    UNION SELECT 8

    UNION SELECT 9

                 )

        SELECT  b.aaa ,

                b.bbb ,

                T.number

        FROM    #tmp b

                JOIN ( SELECT   ( d5.Number * 100000 ) + ( d4.Number * 10000 )

                                + ( d3.Number * 1000 ) + ( d2.Number * 100 )

                                + ( d1.Number * 10 ) + d0.Number AS Number

                       FROM     Digits AS d0 ,

                                Digits AS d1 ,

                                Digits AS d2 ,

                                Digits AS d3 ,

                                Digits AS d4 ,

                                Digits AS d5

                     ) t ON 1 = 1

        WHERE  t.number <= b.bbb

        ORDER BY b.aaa ,

                b.bbb ,

                t.Number

  • 相关阅读:
    软件工程阅读笔记02
    软件工程阅读笔记01
    四则运算二
    第十七周学习进度条
    个人总结以及建议
    写api接口神器--带你5分钟了解swagger
    nginx的配置和基本参数说明
    larval 使用redis做缓存
    Laravel——缓存使用
    开启redis-server提示 # Creating Server TCP listening socket *:6379: bind: Address already in use--解决方法
  • 原文地址:https://www.cnblogs.com/anranstl/p/5241275.html
Copyright © 2011-2022 走看看