首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

给变量赋值的select语句, 怎么用不存在的字段排序

2012-08-31 
给变量赋值的select语句, 如何用不存在的字段排序?SQL codeselect top 5 c1, c2, c2 % c1 c3 from t1order

给变量赋值的select语句, 如何用不存在的字段排序?

SQL code
select top 5 c1, c2, c2 % c1 c3 from t1order by c3 desc

这样是没问题的

SQL code
declare @c1 intdeclare @c2 intdeclare @c3 intselect top 5 @c1=c1, @c2=c2, @c3=c2 % c1 c3from t1order by c3 desc

这样子就出问题了. 该如何解决?


[解决办法]
SQL code
select top 1 @c1 = c1, @c2 = c2, @c3 = c2 % c1from @torder by c2 % c1 desc
[解决办法]
SQL code
with cte as(declare @c1 intdeclare @c2 intdeclare @c3 intselect top 5 @c1=c1, @c2=c2, @c3=c2 % c1 c3from t1)select * from cte order by c3 desc
[解决办法]
,,看错了参数接收不能用CTE
[解决办法]
declare @c1 int
declare @c2 int
declare @c3 int
select top 5 @c1=c1, @c2=c2, @c3=c2 % c1 c3
from t1
order by c2 % c1desc

其实这样就行了


[解决办法]
大哥,你这定义的是变量,不是表变量,top 5有5个值的。。

热点排行