SQL SERVER ,从数据库里查出符合某种条件的一组数据,只要这组数据的某条,能在SQL SERVER里实现吗?

不通过建立临时表,比如 select * from 学生信息表 where 性别='女',假设这里面查到很多数据,只要这堆数据的某几条,这个条件由外部给,比如要1,3,5条记录,这个能只通过一次查询实现吗?谢谢!

不能,严格说来这堆记录是无序的,也就是说几条记录的顺序是无关紧要的。所以无法实现具体的操作。除非是在有序的情况下操作。

有序的情况下可以有两种操作手段,一种是使用数据库游标,然后按外部条件进行定位。这种情况一般认为可以通过存储过程实现。或者你也可以认为是一条语句:一条执行存储过程的语句与一条执行SQL查询的语句有区别么?不管怎么说我可以将存储过程作为了条执行语句进行查询的,这也叫一次!

另一种办法是根据外部索引建方临时序号,然后再进行一次查询,但只是一条语句,里边使用子查询的形式,可以认为是两条语句么?至于外部添加序号,可以使用SQL数据库中的Row_NUMBER函数实现即可!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-15
可以,需一个标示行的列id,如果没有可以ROW_NUMBER() over(order by 某列) as rowid
1.假设有标示的列id为rowid
select * from 学生信息表 where 性别='女' where rowid in (1,3,5) --条件由外部输入
2.如果没有标示的列id
select ROW_NUMBER() over(order by 某列) as rowid,* from 学生信息表 where 性别='女' where rowid in (1,3,5)
第2个回答  2012-06-17
能啊,把你查找的条件写清楚就行了