首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教,数据库排序

2012-10-24 
请问,数据库排序ID列是一些大的数字:20121010082由于数字太大,设为Int32不合适,我设置的数据类型为字符串

请问,数据库排序
ID列是一些大的数字:
20121010082

由于数字太大,设为Int32不合适,
我设置的数据类型为字符串类型,那么,以ID列排序,是按照什么规则排序的呢?是按照数字的大小排序的吗?

[解决办法]
以你排序规则下字符的ASCII码排序的.
[解决办法]
但是都是数字的这种规则你这么做没错.
设为INT也是可以的.一般像这种还是字符
[解决办法]
如果数值偏大,并且不能保证只有数值,那么用字符串会比较好。在表里面如何排序,最好是根据你最常用的查询来定。举个例子,日期,如果你最长查询的是降序查询,那么表的顺序用降序,可以减少seek和order by的开销。
[解决办法]
是按照数字的大小排序的,不过性能会比数字的差些
你这个可以用bigint
[解决办法]
這樣可以保證按數字大小順序排

SQL code
Order by Len(ID),ID
[解决办法]
SQL code
你的数字有这么长么?declare @a bigint, @b intset @a = 1234567890123456789set @b = 1234567890select @a,@b/*                     -------------------- -----------1234567890123456789  1234567890(1 行受影响)*/
[解决办法]
另外建个字段放日期,然后这个ID字段最好INT类型,自增,然后创建聚集索引。
[解决办法]
探讨
数据库中,日期可不可以写成这种格式:
2012年3月6日:20120306

[解决办法]
bigint
[解决办法]
日期比较好的存放格式还是varchar
[解决办法]
bigint足矣
[解决办法]
探讨

bigint足矣

[解决办法]
都是数字的这种规则你这么做没错.
设为INT也是可以的.一般像这种还是字符
[解决办法]
在排序时.转一下数据类型,将字符转为数字,select * from t order by cast(id as numeric(16,0))

热点排行
Bad Request.