日期:2014-05-18  浏览次数:20433 次

我想给查询语句返回的记录加个自动编号列。
比如我这样一个语句:select   name,age,sex   from   student
返回结果是:
name     age     sex
xx         20         男
yy         21         女
zz         22         男
我想返回结果变成:
bh           name         age         sex
第1个       xx             20           男
第2个       yy             21           男
第3个       xx             22           男

这个bh列就是根据返回记录的行数而变的。。
请问这个该怎么做?

------解决方案--------------------
select bh = identity(int,1,1) , name,age,sex into @temp from student

select '第 ' + cast(bh as varchar) + '个 ' , name,age,sex from @temp

------解决方案--------------------
如果根据name区分大小,可不用临时表.

select '第 ' + cast(bh as varchar) + '个 ' bh, name,age,sex from
(
SELECT * , bh=(SELECT COUNT(name) FROM student WHERE name > a.name) + 1 FROM student a
) t
order by bh