我想在报表SQL查询中实现order by asc还有desc 还有前几个
number 是可变的,根据用户的输入,升序和降序也是用户选择的
use Northwind
declare @number int
set @number= '5 ' 
select top 5 * from Employees order by EmployeeID asc
select * from Employees order by EmployeeID asc
select * from Employees order by EmployeeID desc
想把上面的写成一句sql,传递两个参数,一个是number,一个是type,type决定用哪句sql
type=’1‘  select  * from Employees order by EmployeeID asc并且根据@number的值 取前几
type=‘2’ select * from Employees order by EmployeeID desc 并且根据@number的值 取前几
type=‘3’select * from Employees order by EmployeeID asc
type=‘4’ select * from Employees order by EmployeeID desc实现后加分到40!!!!!!!
刚才高人写的report报表没法!

解决方案 »

  1.   

    create procedure p1(@number int,@type int)asif @type=1 exec('select top '+@number+' * from Employees order by EmployeeID asc')
    if @type=2 exec('select top '+@number+' * from Employees order by EmployeeID desc')
    if @type=3 exec('select top '+@number+' * from Employees order by EmployeeID asc') 
    if @type=4 exec('select top '+@number+' * from Employees order by EmployeeID desc')