现有一张表test,两列age,nameinsert into test values(11,'zhangsan') 将这条数据插入5次后,删除第一条,怎么做?没有标识列
解决方案 »
- 表中fnumber的字段最后一位+1,若重复则+2...... 在线等
- 求一个简单的SQL语句
- 如何知道我的Update语句更新成功???
- sql语句剔出相同数据,需要怎么写
- 如何实现这样的查询?
- sql server里有个标准的数据库demo_db,如何实现复制demo_db 成demo_db1 ,demo_db2......
- 在复制中,分发服务器选在哪一台,性能有分别吗?
- 有没有可以在flash中连接sql数据库的控件啊!!!(求救)!
- 安装SQL SERVER 2000时候出现下面提示,请问如何解决?详细请进!
- 求一个比效难的SQL语句..........(有点难度)
- 雷人的Gruop by 函数
- 这个SQL不好写
as
(select *,px=row_number()over(partition by age,name order by (getdate())) from tb)
delete tt
where px=1
create table test(id1 int,name1 varchar(20))----连续插入5条记录
declare @i intset @i=0while @i<5
begininsert into test values(11,'zhangsan')set @i=@i+1end----删除第一条记录set rowcount 1delete from testset rowcount 0
(
select row_number() over (order by age) as id,* from spt_values
)
delete from t where id=1试一下这个!
(
select row_number() over (order by age) as id,* from test
)
delete from t where id=1试一下这个!
意思就是生成一个自增的列PX,这个PX是按age,name 增量排序的,where px=1 就是删除第一列。能明白不? 实在看不懂的话;你就去搜 row_number() 的用法;就晓得了。
as
(
select age,name,row=ROW_NUMBER() over(order by (select 1))
from test
)
delete from cte
where row=1
go
set rowcount 1
delete t from t a left join inserted b on a.name=b.name and a.age=b.age
set rowcount 0
set rowcount 1
delete from test
set rowcount 0就这个了,昨天刚学到,跟LZ一起学习~!