zoukankan      html  css  js  c++  java
  • 使用SQL产生无限条顺序数字(11000000...)的记录

    很多时候需要在查询时产生顺序的数字记录,下面两个方法非常实用:
    1.利用系统表
    ;with t as
    (
        
    SELECT
                x 
    = ROW_NUMBER() OVER
                (
    ORDER BY s1.[object_id])
            
    FROM       sys.objects AS s1
            
    CROSS JOIN sys.objects AS s2
            
    CROSS JOIN sys.objects AS s3


    select * from t where x BETWEEN 1 AND 100000
    1000000可以替换成更大或更小的数

    2.利用CTE
    SET NOCOUNT ON;
    DECLARE @UpperLimit INT;
    SET @UpperLimit = 1000000;

    WITH
       n5   (x) 
    AS (SELECT 1 UNION SELECT 0),
       n4   (x) 
    AS (SELECT 1 FROM n5 CROSS JOIN n5 AS x),
       n3   (x) 
    AS (SELECT 1 FROM n4 CROSS JOIN n4 AS x),
       n2   (x) 
    AS (SELECT 1 FROM n3 CROSS JOIN n3 AS x),
       n1   (x) 
    AS (SELECT 1 FROM n2 CROSS JOIN n2 AS x),
       n0   (x) 
    AS (SELECT 1 FROM n1 CROSS JOIN n1 AS x),
       Nbrs (x) 
    AS 
       (
           
    SELECT
               ROW_NUMBER() 
    OVER
               (
    ORDER BY x)
           
    FROM n0
       )
    SELECT [Number] = x
      
    --INTO dbo.Numbers
      FROM Nbrs
      
    WHERE x BETWEEN 1 AND @UpperLimit;
    同样@UpperLimit可以修改成其他数字。
  • 相关阅读:
    关于正则表达式
    hashilib模块和hmac模块
    PyYAML模块和ConfigParser模块
    xml处理模块
    shutil模块(文件,文件夹,压缩包处理)
    十四、浏览器检测
    十三、BOM
    十二、匿名函数和闭包
    并发,并行,同步,异步的区别
    java中常见的类,接口,包,异常
  • 原文地址:https://www.cnblogs.com/jintan/p/1579453.html
Copyright © 2011-2022 走看看