sqlserver中用top 1取出最后一条数据,出了问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver中用top 1取出最后一条数据,出了问题相关的知识,希望对你有一定的参考价值。

我的 OrderForm 表中有一万条记录,用下面的语句取最后一条记录的时候,得到的结果总是第9999条,我怎样才能取出第一万条记录呢?
select top 1 OF_id from OrderForm order by OF_id desc

----------------
数据库是:sqlserver2000
1. 最后一条记录保存了,现在已经有一万多条了.
2. 我的OF_id是varchar型.例如:OF12567是第一万二千五佰六十七条记录.
------------
问题已经解决: 微软对top N有限制,最多只能查询到9999条记录到内存中.

你的OF_ID里是数字吧,你用ORDER的话,它是按照这列排序了,而不是按你写入这列的顺序排的。所以你得出的结果应该是这列最大的数而不是最后一列。 参考技术A 添加最后一条记录的时候你保存了吗?

SQLserver中用convert函数转换日期格式

 

 

SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用convert函数转换日期格式

SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm

例如:

select getdate()

2004-09-12 11:06:08.177

整理了一下SQL Server里面可能经常会用到的日期格式转换方法:

举例如下:

select CONVERT(varchar, getdate(), 120 )

2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),‘-‘,‘‘),‘ ‘,‘‘),‘:‘,‘‘)

20040912110608

select CONVERT(varchar(12) , getdate(), 111 )

2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )

20040912

select CONVERT(varchar(12) , getdate(), 102 )

2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )

09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )

12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )

12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )

12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )

12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )

09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )

11:06:08

select CONVERT(varchar(12) , getdate(), 109 )

09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )

09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )

12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )

11:06:08.177

select getdate()

结果:2003-12-28 16:52:00.107

select convert(char(8),getdate(),112)

结果:20031228

select convert(char(8),getdate(),108)

结果:16:52:00

select convert(char(8),getdate(),112)

                                   |

                             指日期格式

规则如下:

1 101 美国 mm/dd/yyyy

2 102 ANSI yy.mm.dd

3 103 英国/法国 dd/mm/yy

4 104 德国 dd.mm.yy

5 105 意大利 dd-mm-yy

6 106 - dd mon yy

7 107 - mon dd, yy

8 108 - hh:mm:ss

- 9 或 109 (*)   默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10 110 美国 mm-dd-yy

11 111 日本 yy/mm/dd

12 112 ISO yymmdd

- 13 或 113 (*)   欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)

14 114 - hh:mi:ss:mmm(24h)

- 20 或 120 (*)   ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]

- 21 或 121 (*)   ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]

- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)

- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM

- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

          关于Emaker中字段的格式转换和字段间的运算代码可以加到属性里的“格式转换(读出)”和“格式转换(写入)”,table字段设定里的“字段”位置也可以灵活加函数。比如:‘AF‘+ID 或者ID+‘/‘+PWD ,convert(varchar(50),F1) ,

convert(int,%)-19110000 (读出)

convert(char(8),convert(int,%)+19110000) (写入)

实现行的合计运算等等。加入:%系统变量%,则是调用在Emaker 系统中设定的系统变量。

以上是关于sqlserver中用top 1取出最后一条数据,出了问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql 联合查询 如何查询从表的最后一条记录

后端是SQLSERVER,如何选取最后一条记录

SQL Server 如何查询最后一条记录

top与with ties用法

sqlserver 查询多条数据怎么只取一条

JAVA中用啥方法向SQL server2005中插入一条数据并返回他的主键值