`
gq913
  • 浏览: 169016 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sql示例___ 添加一顺序列

    博客分类:
  • sql
阅读更多

方法一:create table person(
    id int not null,
    name varchar(32) not null
)
insert into person
    select 1,'zhangsan' union all
    select 2,'lisi' union all
    select 3,'王五' union all
    select 4 '刘六'

select identity(int,1,1) as 顺序, name into #person from person order by name;
select * from #person order by 顺序;

drop table #person;

说明:sql server中实现排序后添加一显示顺序列。

IDENTITY(属性):在表中创建一个标识列。此属性与 CREATE TABLE 及 ALTER TABLE Transact-SQL 语句一起使用。

显示结果:

顺序  name

1      lisi
2      zhangsan
3      刘六
4      王五

方法二:

    select count(*)as 顺序,p.name
    from person p,person b
    where p.name >= b.name
    group by p.name
    order by p.name --desc

    或:

    select count(*)as 顺序,p.name
    from person p,(select name from person ) b
    where p.name >= b.name
    group by p.name

    说明:此方法有局限性,有重名的时候结果就不是我们想要的预期结果了。修改后的:

             select count(*)as 顺序,p.name
                from (select distinct name,id from person) p,(select distinct name from person) b
                where p.name >= b.name
                group by p.name
                order by p.name

             此方法的缺点是重名的被过滤掉。因此第一种方法是最好的。

请大家指教谢谢。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics