当前位置: 代码迷 >> Sql Server >> SQL 2000怎么获得指定行的数据
  详细解决方案

SQL 2000怎么获得指定行的数据

热度:64   发布时间:2016-04-24 10:36:57.0
SQL 2000如何获得指定行的数据?
如题?该如何写呢?是否要写函数来实现?
------解决方案--------------------
2000的话 加个自增列进行排序就好了

就这样

select id=identity(int,1,1),* into  #tb  from tb 

select * from #tb where id=xx

------解决方案--------------------
指定的行有很多含义,不知道你说的哪种
------解决方案--------------------
引用:
就是比如表Table1中
---------------------------------------------
cname   csex    
张三    男
李四    男
王五    女
赵六    女
小明    男
----------------------------------------------
想直接取出(赵六 女)这行的数据

那你这行是靠什么定义的
sqlserver不是人 不是一眼看出来你要什么
你必须给他一个规则
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

就是比如表Table1中
---------------------------------------------
cname   csex    
张三    男
李四    男
王五    女
赵六    女
小明    男
----------------------------------------------
想直接取出(赵六 女)这行的数据

那你这行是靠什么定义的
sqlserver不是人 不是一眼看出来你要什么
你必须给他一个规则

只是想取出那一行的数据,比如表中有6行数据,我要取出第五行的,该怎么写呢?

6行数据 你必须要对个有个排序 给一个排序的规则
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

就是比如表Table1中
---------------------------------------------
cname   csex    
张三    男
李四    男
王五    女
赵六    女
小明    男
----------------------------------------------
想直接取出(赵六 女)这行的数据

那你这行是靠什么定义的
sqlserver不是人 不是一眼看出来你要什么
你必须给他一个规则

只是想取出那一行的数据,比如表中有6行数据,我要取出第五行的,该怎么写呢?

6行数据 你必须要对个有个排序 给一个排序的规则

数据行固定,没有排序规则取不出来吗?
没有主键?堆表没有顺序可言
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

就是比如表Table1中
---------------------------------------------
cname   csex    
张三    男
李四    男
王五    女
赵六    女
小明    男
----------------------------------------------
想直接取出(赵六 女)这行的数据

那你这行是靠什么定义的
sqlserver不是人 不是一眼看出来你要什么
你必须给他一个规则

只是想取出那一行的数据,比如表中有6行数据,我要取出第五行的,该怎么写呢?

6行数据 你必须要对个有个排序 给一个排序的规则

数据行固定,没有排序规则取不出来吗?

这个顺序没有保证
------解决方案--------------------
建议加主键,然后再获取,只有使用ORDER BY 才能唯一保证顺序
------解决方案--------------------
用游标来做

--例:
DECLARE MyCursor CURSOR SCROLL
FOR
SELECT Name,PinYin
FROM tb_Account
WHERE Type=0;
-----打开游标-----
OPEN MyCurSor;
-----提取数据-----
--INTO:字段1, :字段2, :字段3;
--提取游标中的第一行
FETCH FIRST FROM MyCursor;
--提取游标中的上一行
FETCH PRIOR FROM MyCursor;
--提取游标中的下一行
FETCH NEXT FROM MyCursor
--提取游标中第n行 如果 n 为正整数,则提取游标中从第 1 行开始的第 n 行。如果 n 为负整数,则提取游标中的倒数第 n 行。如果 n 为 0,则不提取行。

FETCH ABSOLUTE 10 FROM MyCursor;
--提取游标中的最后一行
FETCH LAST FROM MyCursor;
--提取游标中从上一个提取行数起的第 n 行。如果 n 为正数,则提取上一个提取行后面的第 n 行。如果 n 为负数,则提取上一个提取行前面的第 n 行。如果 n 为 0,则再次提取同一行。
FETCH RELATIVE 1 FROM MyCursor;
--1声明变明,2接收游标数据 3显示数据
DECLARE @TempName varchar(20), @TempCode varchar(20);
FETCH NEXT FROM MyCursor INTO @TempName,@TempCode
WHILE (@@FETCH_STATUS = 0)
BEGIN
 SELECT
 @TempName AS Name,
 @TempCode AS Code
 FETCH NEXT FROM MyCursor INTO @TempName,@TempCode;
END
-----关闭游标-----
CLOSE MyCurSor;
-----删除游标-----
deallocate MyCurSor
  相关解决方案