sql server 解决union all之后 order by失效的问题

注意关键点在TOP 99.999999 PERCENT  


	SELECT * FROM (
	      		SELECT TOP  99.999999 PERCENT 
	      		t.CallDate,
	      		t.userid,
	      		t.GroupName,
	      		t.AgentNum,
	      		t.username,
	      		t.duration,
	      		t.connectNumber,
	      		t.connectOrderNumber,
	      		t.callnumber,
	      		t.CallOrderNumber,
	      		t.ConnectionRate,
	      		t.OnlinSumbitNumber,
	      		t.connectsuccessRate,
	      		t.InputOrderNumber,
	      		t.InputOrderRate,
	      		t.SuccessOrderNumber,
	      		t.SuccessRate,
	      		t.FirstCallNumber,
	      		t.TrackNumber 
	      		FROM @tab AS t WHERE t.userid IS NOT NULL 
	      		ORDER BY t.CallDate ASC ,
	      		CASE   WHEN    @OrderType=101 THEN  t.duration END ASC ,   
				CASE   WHEN    @OrderType=102 THEN t.duration END DESC  ,   
				CASE   WHEN    @OrderType=111 THEN t.connectNumber END ASC ,   
				CASE   WHEN    @OrderType=112 THEN t.connectNumber END DESC ,   
				CASE   WHEN    @OrderType=121 THEN t.ConnectionRate END ASC ,   
				CASE   WHEN    @OrderType=122 THEN t.ConnectionRate END DESC ,   
				CASE   WHEN    @OrderType=131 THEN t.connectsuccessRate END ASC ,   
				CASE   WHEN    @OrderType=132 THEN t.connectsuccessRate END DESC ,   
				CASE   WHEN    @OrderType=141 THEN t.InputOrderNumber END ASC ,   
				CASE   WHEN    @OrderType=142 THEN t.InputOrderNumber END DESC ,   
				CASE   WHEN    @OrderType=151 THEN t.InputOrderRate END ASC ,   
				CASE   WHEN    @OrderType=152 THEN t.InputOrderRate END DESC ,   
	            CASE   WHEN    @OrderType=161 THEN t.SuccessOrderNumber END ASC ,   
	            CASE   WHEN    @OrderType=162 THEN t.SuccessOrderNumber END DESC ,  
	            CASE   WHEN    @OrderType=171 THEN t.SuccessRate END ASC , 
	            CASE   WHEN    @OrderType=172 THEN t.SuccessRate END DESC ,  
	            CASE   WHEN    @OrderType=181 THEN t.FirstCallNumber END ASC ,  
	            CASE   WHEN    @OrderType=182 THEN t.FirstCallNumber END DESC,
	            CASE   WHEN    @OrderType=191 THEN t.TrackNumber END ASC ,  
	            CASE   WHEN    @OrderType=192 THEN t.TrackNumber END DESC
	      		) AS tt
	      		UNION ALL
	      		SELECT * FROM (
	      		SELECT TOP  99.999999 PERCENT 
	      			t.CallDate,
	      			t.userid,
	      			t.GroupName,
	      			t.AgentNum,
	      			t.username,
	      			t.duration,
	      			t.connectNumber,
	      			t.connectOrderNumber,
	      			t.callnumber,
	      			t.CallOrderNumber,
	      			CASE WHEN t.CallDate=N'合计' then null ELSE t.ConnectionRate end as ConnectionRate,
	      			t.OnlinSumbitNumber,
	      			CASE WHEN t.CallDate=N'合计' then null ELSE t.connectsuccessRate end as connectsuccessRate,
	      			t.InputOrderNumber,
	      			CASE WHEN t.CallDate=N'合计' then null ELSE t.InputOrderRate end as InputOrderRate,
	      			t.SuccessOrderNumber,
	      			CASE WHEN t.CallDate=N'合计' then null ELSE t.SuccessRate end as SuccessRate,
	      			t.FirstCallNumber,
	      			t.TrackNumber
	      		FROM
	      			@tab AS t WHERE t.userid IS NULL ORDER BY t.CallDate ASC 
	      		) AS v


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值