在sql_server的基本sql語句問題(20分)

  • 主题发起人 主题发起人 bernie.li
  • 开始时间 开始时间
B

bernie.li

Unregistered / Unconfirmed
GUEST, unregistred user!
fw們,問個簡單的問題,在sql server上怎麼來規定你要選擇的行數,即rows.
在oracle中我可以用rownum來判斷它,例如:
select * from table where columns1='a' and rownum <=10
則選出符合條件的10筆數據.
那麼在sql server中要用什麼辦法來實現呢?
窮人,20分求!謝謝!
 
select top 10 * from table where columns1='a'
 
Select Top 10 {子段列表} from table where columns1='a'
 
但是如果我要想刪除這些數據该怎麼操作呢?
 
Delete From table where id in (select top 10 id from table where columns1='a')
 
junghyunhy :
不行啊,沒有id這個column啊,而且如果几筆數據都一樣,而我只想
刪除前几個的情況下,那怎麼辦?
 
你的表中没有唯一索引吗?我说的ID就是表中唯一索引字段。
 
Delete From table where id in (select top 10 id from table where columns1='a' order by 某一字段)
我不清楚你的数据库结构,我写得能看懂吧?
 
我沒有設置唯一索引,要是有唯一索引我看了上面選擇的語句我就會刪除了啊
 
给出你表结构
 
我的數據結構:
table name : test, column1 : name, column12 : age
abc 19
abc 19
abc 19
abc 19
如果我只想刪除前2筆紀錄我應該怎麼做?謝謝
 
记录都一样删哪个不都一样吗????
 
有没有能够唯一表示表中某一行的条件或自动(例如系统自加1或GUID等)?
 
要是有的話我就可以完成了,在oracle中就可以完成,只是在sql server中我
不知道可以不可以.
 
也不是說刪除前2筆,只要刪除2筆就可以了
 
select top 10 * from table where columns1='a'

delete a as b where b.a1 in (select top 2 * from a)
 
可以寫的明白一點麼!我按你的說法做好像不行啊
 
set rowcount指定查询、修改、删除所影响的行数

set rowcount 1 //设定只删除一行
delete from 表 where 字段=@字段
set rowcount 0 //恢复为不设定行数
 
多人接受答案了。
 
后退
顶部