sql排序问题,字符串中有全数字和含中文的, 要求全数字的转换成整数排序,含中文的默认排在前面或者最后

使用一楼的:order by ISNUMERIC(字段),case when ISNUMERIC(字段)=0 then 0 else cast(字段 as bigint) end
报错:消息 8114,级别 16,状态 5,第 1 行
从数据类型 nvarchar 转换为 bigint 时出错。
二楼的:在ORACLE中的函数能使用,但在SQL中不能使用;

不知道SQL2005中是否支持正则表达式,具体怎么写呢?排序的字段属性nvarchar(50),有全数字,全中文,数字中文混合的,还有是小数的,我昏倒,全数字占大部分,
例如:
num tmp
1 101
2 2001
3 322
4 1103
5 18.44
6 四
7 2-1

所以想把整数的排序,其他不规则的放在后面就可以了

使用 ISNUMERIC函数就可以了,
order by ISNUMERIC(字段),case when ISNUMERIC(字段)=0 then 0 else cast(字段 as bigint) end

还有小数的!!晕。
那就把bigint改成 float
order by ISNUMERIC(字段),case when ISNUMERIC(字段)=0 then 0 else cast(字段 as float) end
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-09
select * from
(select * from tmp where length(name) = lengthB(name) order by to_number(name))
union all
select * from tmp where length(name) < lengthB(name) ;

我用的是ORACLE数据库,上面语句是经过测试了的

sql排序问题,字符串中有全数字和含中文的, 要求全数字的转换成整数排...
order by ISNUMERIC(字段),case when ISNUMERIC(字段)=0 then 0 else cast(字段 as bigint) end 还有小数的!!晕。那就把bigint改成 float order by ISNUMERIC(字段),case when ISNUMERIC(字段)=0 then 0 else cast(字段 as float) end ...

sql语句问题:像这样的字符串字段里含有数字还有汉字的如何使他们按照数...
把数据做一次清理。提取数据里你需要进行排序的数据放在一个新字段里 查询时按提取的字段进行排序即可。注意数据类型哈 祝好运,望采纳。

sql语句中对一个字段排序,字段中含有字符串和数字,(怎根据数字进行排序...
order by 字段名称*1 desc\/asc的形式进行排序

Sql中有没有把字符串转换成int数值类型
在SQL的世界里,一个强大的工具是CAST函数,它能帮助我们实现字符串向整数类型的转换。然而,这个过程并非无条件,它对输入的字符串格式有特定要求。首先,只有当字符串中只包含数字和小数点时,CAST才会顺利进行。任何额外的字符,如字母或特殊符号,都可能引发转换的失败,因为它们不属于数字或小数的范畴。

在sql中如何将字符串数字转换成数字?
用cast(金额 as decimal(10,4))>500或者 convert(decimal(10,4),金额)>500 注:decimal的长度和小数位数根据自己需要设定 sql中将字符串数字转换成数字:方法一:SELECT CAST('123' AS SIGNED integer);方法二:SELECT CONVERT('123',SIGNED);方法三:SELECT '123'+0;...

SQL语句查询返回字符串中中文字符前的字符(包含数字与字母)
select substring(field1,1,patindex('%[吖-咗]%',field1)-1) from table

SQL 中怎么把字符串转换为数字?
将字符的数字转成数字,比如'0'转成0可以直接用加法来实现;例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决;select from pony order by (d+0);在进行ifnull处理时,比如 ifnull(a\/b,'0')这样就会导致 a\/b成了字符串,因此需要把'0'改成0,即可解决此困扰;比较数字和...

sql语句中怎样将字符类型转换成数字类型
转换的方式很多,但是字符串转换成数字的前提是字符串中只包含了数字或者小数点。可使用convert函数,cast 和convert可以显式转换数据类型,在某些情况下SQL会根据实际情况自动转换!不过建议显式的转换一下,这样的话可读性高一点!因为字符串不一定能转换成数字,所以用上面的,加上错误处理比较。例子:declar...

sql 字符与数字排序
Sql给你,分给我 转换asc码,简洁方便 1是49 a是97 z就是123 只要让数字的码都大于字母就可以了,73是可以根据情况改的,要是有大写情况,也能处理 select Id from a order by (case when isNumEric(Id)=1 then ascii(Id)+73 else ascii(Id) end)...

SQL 中怎么把字符串转换为数字
在SQL中,将字符串转换为数字是一项常见的任务。首先,你可以使用ISNUMERIC函数来判断字符串是否能被转换为整数、浮点数、money或decimal类型。该函数返回1表示可转换,0则表示不可。例如,'0'可以直接通过加法转换为数字0。对于绝对比较,可以使用binary类型进行,如比较'11'和'11ddddd',如select binary...

相似回答