这样的排序该如何写?

Jelly1016 2003-11-10 09:46:58
我有一个字段,类型为char,值为1.1,1.2,...,1.10,因为它是主键,所以自动排序,为1.1,1.10...,请问如何按1.1,1.2,...,1.10的顺序排序?
...全文
20 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-11-10
  • 打赏
  • 举报
回复
order by cast(left(字段,charindex('.'字段)-1) as int)
,cast(right(字段,len(字段)-charindex('.'字段)) as int)

Jelly1016 2003-11-10
  • 打赏
  • 举报
回复
但是除了1.1之外,还有1.1.1至1.1.10等,1.1.1.1至1.1.1.10等,怎么办?
txlicenhe 2003-11-10
  • 打赏
  • 举报
回复
参考这个函数:
create function getIP(@a varchar(15))
returns varchar(15)
As
begin
declare @s varchar(15)
set @s = ''
while charindex('.',@a) > 0
begin
set @s = @s + right('000' + left(@a,charindex('.',@a)),4)
set @a = right(@a,len(@a)-charindex('.',@a))
end
set @s = @s + right('000' + @a,3)
return @s
end

/*
Select dbo.getIP('202.1.110.2')
---------------
202.001.110.002
pengdali 2003-11-10
  • 打赏
  • 举报
回复
order by cast(substring(字段,charindex('.'字段)+1,8000) as int)

34,597

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧