导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

这条SQL语句怎么写?

wf2091139 2005-10-14 01:41:21
SQL:
我想在查询结果集中(比如:select * from tbl)增加显示一列比如就叫Index(不是表中的字段)。希望他是可以像自动增长型字段一样,当我插入、增加、删除时会有相应的变化。我该怎么写这个语句?
...全文
127 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wf2091139 2005-10-15

to:
zxbyhcsdn(沙子)
scmail81(freedom)

不好意思!是我测试的时候失误,在后面加了条件,前面忘了加
你们的语句是对的,呵呵

回复
wf2091139 2005-10-15
比如 数据库通过条件检索后的情况是:
ID tablename 序号
---------------- ----
3 aaa 1
5 bbb 2
7 ccc 3
9 ddd 4

其中“序号”就是想要显示的,他纯粹是标识一下记录数(好象是和ID没有太大的关系)。

to:
zxbyhcsdn(沙子)
scmail81(freedom)
我试了下你们的语句好象效果不对。可能是我开始没有说清楚。
麻烦你们再帮我看看。
回复
zxbyhcsdn 2005-10-15
呵呵
回复
$扫地僧$ 2005-10-14
select (select count(*) from 表 where 表.id<=a.id) ID,a.* from 表 a
回复
zxbyhcsdn 2005-10-14
select *, [id]=(select count(1) from jobs b where b.job_id>a.job_id)+1 from jobs a
回复
wf2091139 2005-10-14
UP!

回复
wf2091139 2005-10-14
顶!
回复
wf2091139 2005-10-14
数据库中已经有类似“序号”这样的字段!当时通过检索后得到的记录

的“序号”值不一定连续!所以我希望可以附加显示一列连续整数的信息!
回复
GNID 2005-10-14
你可以在你的表中加一个identity列。
另外你说的Select * ,(case when ..then .. else .. end )aaa from tbl ...是一个根据条件aaa列来得到值的一个过程,而你要得到的是一个递增的列,这个是不一样的!
回复
wf2091139 2005-10-14
顶!!!
回复
wf2091139 2005-10-14
那为什么有的语句比如

Select * ,(case when ..then .. else .. end )aaa from tbl ...

在查询结果集中会增加显示了1列 “aaa”?

我现在就是像要这列“aaa”是从1开是一直递增(必要的话他可以不是 identity 属性的)。

回复
子陌红尘 2005-10-14
SQL Server 2000 没有提供类似 Oracle's rownum 这样的伪列,大多数情况下,只能借助临时表来实现伪列。
回复
wf2091139 2005-10-14
libin_ftsafe(子陌红尘) 在么?在帮我看看可以么?
回复
wf2091139 2005-10-14
结果有点不像我想要的。
可不可以不通过临时表的方式,直接查询出?
rowid 这个字段只要求他在查询集里面是依次递增的就好了。?

Select ...... from tbl
(其中不使用 "into")
回复
子陌红尘 2005-10-14
select identity(int,1,1) as rowid,* into #T from tbl

select * from #T order by rowid

drop table #T
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告