none
;with...... 的结果能再添加一个“未选择”么? RRS feed

  • 问题

  •     下面的代码用来做DropDownList的数据源,求:以本年为基准,倒数9年,顺数1年,总共十一年。结果为“2005 2006 2007...2015”,现在我想在这10个数字前添加一个"未选择",也就是“未选择 2005 2006 2007...2015”?我尝试了很久都不行,请帮忙看看,3Q

    ; with  CTE as
            (
            select  datepart(year, DateAdd(year, -9, GETDATE())) as yr
            union all
            select  yr + 1
            from    CTE
            where   yr < datepart(year, DateAdd(year, 1, GETDATE()))
            )
    select  yr
    from    CTE

    ==================图====================


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。希望看在党国的面子上拉兄弟一把!




    2014年6月24日 9:04

答案

全部回复

  • ;with  CTE as
            (
            select  DATEPART(year, DateAdd(year, -9, GETDATE())) as yr
            union all
            select  yr + 1
            from    CTE
            where   yr < datepart(year, DateAdd(year, 1, GETDATE()))
            )
    SELECT '未选择'
    UNION ALL
    select CAST(yr AS VARCHAR(30))
    from    CTE;
    用union all 起來!

    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    2014年6月24日 9:47
  •     感谢!我以前也用union all,但是没用对地方。


    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。

    2014年6月25日 1:09
  • 上人意见, 这种纯粹与数据无关的东东, 程序上直接实现就行了吧? 没必要再到DB里面走一圈
    2014年6月25日 1:29
  •     谢谢回复,我会注意这个问题的。这样写主要是让后台代码更简单,前台就相对复杂些。

    C# 菜鸟中的雏鸟!提的问题也许很幼稚,但我是认真的。

    2014年6月25日 12:42