注册 登录
编程论坛 ASP技术论坛

怎样用 SQL 语句删除表中第 n 条记录

afliult 发布于 2008-03-24 15:57, 3158 次点击
我建了一个比如成绩表 cj
有姓名 语文  数学  英语 等字段
比如我现在要删除第 5 个学生的记录
SQL 语句应该怎么写
因为每个字段都有可能出现重复的内容,因此不能用
delete from cj where 条件  这样的方法
请问大家有没有其它的语句 ,最好是一句完成更好
谢谢了
11 回复
#2
文心边城2008-03-24 16:09
把你的表贴出来  用qq截图
#3
yms1232008-03-24 16:11
个人觉得楼主这个表设计的就不妥,首先姓名一定会出现重名,所以无法唯一确定某条数据。
如果是学生成绩管理系统
个人觉得应该用学号作为确定某条数据的依据
这也就是SQL里所说的主键,能唯一定位某条数据的字段称之为主键。
这就跟为什么要有身份证号一样,唯一确定某个人的身份即使这个人的姓名有很多重名。
#4
afliult2008-03-24 17:37
我的目的是 怎样用 SQL 语句删除表中第 n 条记录
有没有重名无关的
#5
madpbpl2008-03-24 18:29
版主只是给你一个好的建议。
你试试如此
delete top 1 * from [table] where id in(select top n id from [table] order by id desc)
这个成立的条件是你的id唯一,假设如版主所言,如有重复,你应该如何区分相同的id呢?
解决问题的过程可以学到更多的东西。
#6
lele20072008-03-24 19:14
版主的方法应该好点,我只知道版主的方法,也只会那个!用自动编号!不知是对是错
#7
文心边城2008-03-25 16:22
如果你没有主键 你的第5条记录又是怎么排出来的呢
#8
afliult2008-03-25 20:41
大家可能不理解我的意思,
是这样的,我己经把表中的内容显示在一个 List 列表框中
而列表框旁边就有一个 DELETE 按纽,我现在要实现的是
点击 DELETE 按纽,就删除List 列表框所选择的那一行
#9
菁菁世家2008-03-26 09:44
value = request("selected")
sql="delete * from biao where value ='"&value&"'"
#10
haxin2008-03-26 09:50
有些郁闷呢
#11
yms1232008-03-26 15:25
不论显示在哪里,数据库里的数据是需要定位的,就算是列表框只要是数据库数据都需要定位。
实现下拉列表删除很容易
javscript语法
[列表框id].remove([列表框id].selectedIndex);
删除列表框选中项的语法
[CODE]
<html>
<head>
<title>列表输入测试</title>
<script language="javascript">
var selVal="";
var selIdx=-1;
function selArea_Change(idx)
{
   
   var selVal=document.form1.product.options[idx].value;
   if(selVal=="Other")
      this.control.style.display="inline";
   else
   {
      selIdx=idx;
      this.control.style.display="none";
      document.form1.inpOther.value=selVal;
   }
   
}
function Run_Option()
{

  if(getOption()=="")
  {
     alert('请先选择操作');
     return false;
  }
  if(getOption()!="add"&&document.form1.inpOther.value=="")
  {
     alert('还没有选定内容');
     return false;
  }
  var inpValue=document.form1.inpOther.value;
  if(getOption()!="remove"&&inpValue=="")
  {
     alert('还没有输入任何内容');
     return false;
  }
  switch(getOption())
  {
       case "add":
            document.form1.product.add(new Option(inpValue,inpValue));
       break;
       case "edit":
            document.form1.product.options[selIdx].value=inpValue;
            document.form1.product.options[selIdx].text=inpValue;
       break;
       case "remove":
            DelOption();
       break;     
  }
}
function DelOption()
{
  if(selIdx>0)
     document.form1.product.remove(selIdx);
}
function getOption()
{
   var Opt="";
   for(var i=0;i<document.form1.selOpt.length;i++)
   {
       if(document.form1.selOpt[i].checked)
          Opt=document.form1.selOpt[i].value;
   }
   return Opt;
}
</script>
</head>
<body>
<form name="form1" >
<td ><strong>Product Name:</strong>
         <select name="product" size="1" onClick="selArea_Change(this.selectedIndex);" onChange="selArea_Change(this.selectedIndex);">
               <option value="Other" >其它</option>
            </select><br>
<div id="control" style="display:none" >
<input type="text" name="inpOther" value="Please enter here"><br>
<input type="radio" name="selOpt" value="add" >将输入的内容添加到列表框<br>
<input type="radio" name="selOpt" value="remove" >删除选定的内容<br>
<input type="radio" name="selOpt" value="edit" >修改选定的内容<br>
<input type="button" value="确定" onClick="Run_Option();"  >
</div>
</form>
</body>
</html>
[/CODE]
#12
mycroo2008-03-28 14:23
一定要设主键,那样才能唯一标识一条记录
1