zoukankan      html  css  js  c++  java
  • 巧用master..spt_values表输出数字或者时间常量表

    http://blog.csdn.net/GRANDTREE/archive/2009/06/16/4273129.aspx

    sql开发中经常需要使用数字或者时间的常量表。

    比如,输出一年的月份表,输出1000以内的自然数等等。数量连续且不超过2048。那么使用master..spt_values表就会再也方便不过了。

    例如

    输出1000以内的自然数:

    select number from master..spt_values
    where type='P' and
    number between 1 and 1000

    dx:原作有误

    master..spt_values表的type字段值为p的,对应,number字段的值是从1至255,

    原始值最大255(不知主动加到2000或以上有没有问题)

    输出2008年至今以来的月份列表:

    create table Mon
    (
      ID int identity(1,1),
      Mon varchar(6)
    )
    GO

    DECLARE
      @BeginMonth varchar(6),
      @EndMonth varchar(6)
    SELECT
      @BeginMonth='200801',
      @EndMonth='200906'

    INSERT Mon(Mon)
    SELECT
      CONVERT(VARCHAR(6),DATEADD(month,number,@BeginMonth+'01'),112)
    FROM
      master..spt_values
    WHERE
      type='P'
    and
      DATEADD(month,number,@BeginMonth+'01')<=@EndMonth+'01'
    SELECT * FROM Mon

    DROP TABLE Mon

  • 相关阅读:
    【Vjudge】P1989Subpalindromes(线段树)
    【Luogu】P3358最长k可重区间集问题(费用流)
    【未有之有】洛森设定随笔
    14-Perl 引用
    13-Perl 子程序(函数)
    12-Perl 时间日期
    11-Perl 运算符
    10-Perl 循环
    9-Perl 条件语句
    8-Perl 哈希
  • 原文地址:https://www.cnblogs.com/goldarch/p/1800434.html
Copyright © 2011-2022 走看看