none
能不能order by后再聚合? RRS feed

  • 问题

  • select substring(dbo.AggJoin(','+UserName),2,4000) from tUser order by UserName

    AggJoin是我写的Clr聚合函数,作用是将字符串串在一起。例如:superman,admin,10000,test1,test2

    --有没有办法做到order by后再聚合?这里order by需要group by,但group by后结果就不对了。

    ---很多时候都要将数据串在一起,用了AggJoin后字符串是串在一起,但却不能排序。
    2009年12月17日 11:16

答案

  • 子查询不能order by呀
    這是誤用CLR,以上直接用函數返回表結果集,用UserName排序
    ROY WU(吳熹)
    • 已建议为答案 Cityboy1984 2009年12月18日 2:32
    • 已标记为答案 SQL STUDIO 2009年12月18日 11:12
    2009年12月18日 2:13
    版主
  • You are right。 We can not use the Order by clause  in the Subqury clause or view.

    • 已标记为答案 SQL STUDIO 2009年12月18日 11:12
    2009年12月18日 2:34
  • 不能。below is the the Transact-SQL for Select . Orde by comes at the very end.

    SELECT select_list [ INTO new_table ]

    [ FROM table_source ] [ WHERE search_condition ]

    [ GROUP BY group_by_expression ]

    [ HAVING search_condition ]

    [ ORDER BY order_expression [ ASC | DESC ] ]

    • 已标记为答案 SQL STUDIO 2009年12月18日 11:12
    2009年12月18日 10:02

全部回复

  • 用子查询试试?
    想不想时已是想,不如不想都不想。
    2009年12月17日 12:50
    版主
  • select substring(dbo.AggJoin(','+UserName),2,4000) from tUser order by UserName

    AggJoin是我写的Clr聚合函数,作用是将字符串串在一起。例如:superman,admin,10000,test1,test2

    有没有办法做到order by后再聚合?这里order by需要group by,但group by后结果就不对了。

    select  substring(dbo.AggJoin(','+UserName),2,4000) from
    (select UserName from tUser order by UserName group by) a

    这样试试?
    2009年12月17日 15:54
  • 子查询不能order by呀
    2009年12月17日 18:32
  • 子查询不能order by呀
    這是誤用CLR,以上直接用函數返回表結果集,用UserName排序
    ROY WU(吳熹)
    • 已建议为答案 Cityboy1984 2009年12月18日 2:32
    • 已标记为答案 SQL STUDIO 2009年12月18日 11:12
    2009年12月18日 2:13
    版主
  • You are right。 We can not use the Order by clause  in the Subqury clause or view.

    • 已标记为答案 SQL STUDIO 2009年12月18日 11:12
    2009年12月18日 2:34
  • select  substring(dbo.AggJoin(','+UserName),2,4000) from(select top 100 percent username from  tUser order by UserName)aa
    2009年12月18日 4:37
  • 加percent 可以order by,但不能排序
    等同于
    select  substring(dbo.AggJoin(','+UserName),2,4000) from tUser
    2009年12月18日 7:00
  • 不能。below is the the Transact-SQL for Select . Orde by comes at the very end.

    SELECT select_list [ INTO new_table ]

    [ FROM table_source ] [ WHERE search_condition ]

    [ GROUP BY group_by_expression ]

    [ HAVING search_condition ]

    [ ORDER BY order_expression [ ASC | DESC ] ]

    • 已标记为答案 SQL STUDIO 2009年12月18日 11:12
    2009年12月18日 10:02