问一下一个排序的问题

sleight 2006-09-15 03:28:26
如果一列是varchar型, 里面 中文+数字+中文...
order by 的时候由于数字作为字符处理,排序会出现1,10,11,...2,20,21...,3,

不知道如何解决,如:北京路25号,北京路2号,北京路2号群光百货1楼,北京路2号群光百货2楼,北京路2号群光百货10楼


自己写不出来
...全文
280 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDMN 2006-09-16
  • 打赏
  • 举报
回复
可能这样更准确点

select * from 你的表名
order by left(地址字段名,PATINDEX('%[0-9]%',地址字段名)-1), --北京路
dbo.fn_GetFirstNum(地址字段名) -- 25


CSDMN 2006-09-16
  • 打赏
  • 举报
回复
写个函数嘛

create function fn_GetFirstNum(
@s varchar(300)
)
returns int
as
begin
if PATINDEX('%[0-9]%',@s)>0
return cast(left(stuff(@s,1,PATINDEX('%[0-9]%',@s)-1,''),PATINDEX('%[^0-9]%',stuff(@s,1,PATINDEX('%[0-9]%',@s)-1,''))-1) as int)
return 0
end
go

你的可以
select * from 你的表名
order by dbo.fn_GetFirstNum(地址字段名)


Well 2006-09-16
  • 打赏
  • 举报
回复
加上一个标志符的,要是不加,即使实现了也好复杂
flyskylf 2006-09-16
  • 打赏
  • 举报
回复
加一个标志列
dawugui 2006-09-15
  • 打赏
  • 举报
回复
没法搞,另外再加一列又如何区分他具体的内容?
junmail 2006-09-15
  • 打赏
  • 举报
回复
另外再加一列比较好!
panjinfu80 2006-09-15
  • 打赏
  • 举报
回复
group by
Alexandria 2006-09-15
  • 打赏
  • 举报
回复
不太可能,最好加上一列OrderID,单独标记一条路上的不同门牌号
内容概要:本文研究了计及需求侧响应的日前、日内两阶段鲁棒备用优化问题,提出了一种基于数据驱动的两阶段分布鲁棒优化方法,结合1-范数和∞-范数构造不确定性集合,有效刻画风电、光伏出力及负荷等多重不确定因素的波动特性。研究构建了电热综合能源系统的联合优化模型,通过协调日前调度计划与日内实时调整,充分发挥需求侧响应资源的灵活调节能力,提升系统在不确定性环境下的备用充裕性与运行鲁棒性,并采用Matlab进行建模与仿真验证,结果表明该方法在保障系统安全的同时显著改善了经济性。; 适合人群:具备电力系统分析、优化理论基础及Matlab编程能力的研究生、科研人员,以及从事新型电力系统调度、综合能源系统规划与运行的工程技术人员。; 使用场景及目标:①应用于高比例可再生能源接入背景下电力系统备用容量的优化配置;②为综合能源系统在多重不确定性下的鲁棒调度提供决策支持;③支撑需求侧资源参与系统辅助服务的机制设计与仿真验证,推动源荷互动协调发展。; 阅读建议:建议读者结合Matlab代码深入理解两阶段鲁棒优化的建模过程,重点关注不确定性集构建、鲁棒约束转化及C&CG等求解算法的实现细节,可进一步拓展至其他分布鲁棒优化形式或耦合更多能源形式的综合能源系统场景。

34,876

社区成员

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

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