日期:2014-05-18  浏览次数:20777 次

关于取sql server数据库中特定行的问题?
我建立了一个数据库表里边有五行数据,我想取数据库中的第任意行用语句:
string sqlstr3 = "select top 2 * from Table_2 order by ID desc ";
为什么取不到倒数第二行啊,一直取的是最后一行,不管top后边的数怎么变,取的都是最后一行,数据表里的行号是自己定的还是跟列一样默认从0开始啊


------解决方案--------------------
Lz这个SQL 语句是取出ID最大的2行数据;并不是倒数第二行
------解决方案--------------------
探讨
我建立了一个数据库表里边有五行数据,我想取数据库中的第任意行用语句:
string sqlstr3 = "select top 2 * from Table_2 order by ID desc ";
为什么取不到倒数第二行啊,一直取的是最后一行,不管top后边的数怎么变,取的都是最后一行,数据表里的行号是自己定的还是跟列一样默认从0开始啊

------解决方案--------------------
探讨

引用:
我建立了一个数据库表里边有五行数据,我想取数据库中的第任意行用语句:
string sqlstr3 = "select top 2 * from Table_2 order by ID desc ";
为什么取不到倒数第二行啊,一直取的是最后一行,不管top后边的数怎么变,取的都是最后一行,数据表里的行号是自己定的还是跟列一样默认从0开始啊

……

------解决方案--------------------
你可以查询最后两条,然后用取第二条数据的值
------解决方案--------------------
直接在代码里来处理吧,用DataTable

制定下表想要哪行就用哪行

DataTable dt=getTable();
DataRow row=dt.Rows[i-2];
------解决方案--------------------
select top 1 * from (SELECT TOP 2 * FROM Table_2 order ORDER BY ID DESC) AS TMP ORDER BY TMP.ID ASC
------解决方案--------------------
select * from (select row_number() over(ORDER BY ID DESC) as hangshu,* from Table_2) where hangshu=行数
------解决方案--------------------
探讨

select top 1 * from (SELECT TOP 2 * FROM Table_2 order ORDER BY ID DESC) AS TMP ORDER BY TMP.ID ASC