排序使用变量:如,
declare @sort varchar(50)
declare @intID int
set @sort = user_id
-- 执行语句
select @intID=res_id from res where parent_dir = 1 order by @sort
-- 这里我想用一个变量@sort来作为查询条件,因为查询条件是可变的。可是在SQL里不能这样用。
--我就这样用:
declare @sql varchar(250)
set @sql = select @intID=res_id from res where parent_dir = 1 order by
set @sql = @sql + @sort
execute(@sql)
--可是这样又提示变量@intID没有声明的错误。
应该怎么办呢?有什么方法?
在使用SELECT语句查询时返回的记录集,如:
res_id res_name
1 1001 历史
2 2492 文学
3 1873 科学
4 2352 资源
我想取出自动生成的 1、2、3、4 这些序号,就是 res_id 前面的序号,在SQL里怎么实现?
1、用SP_EXECUTESQL试试
declare @sort Nvarchar(50)
declare @intID int
set @sort = Nuser_id
declare @sql Nvarchar(250)
set @sql = select @intID=res_id from res where parent_dir = 1 order by
set @sql = @sql + @sort
execute sp_executesql @sql,N@intID int output,@intId output
2、select (select count(*) from table1 where res_id<=a.res_id) as 序号,res_id,res_name from table1 a
1,sp_execsql,变量的声明放在语句中,参考前面的帖子
2,结果放入一临时表#temp里,用indentity(1,1)字段
select * into #temp from result where 1=2
alter #temp add column(id,identity(1,1)
insert into #temp
select * from result
select id from #temp
select * into #temp from result where 1=2
alter #temp add column(id,identity(int,1,1))
能改成一句。
select identity(int,1,1) as id,* into #temp from result where 1=2