一个SQL查询问题

xhblzj 2008-04-07 11:41:04
看看这个结果:
ID 数据
1528 879
152801 105
15280101 12
15280102 30
15280103 24
******
1529 1421
152901 154
******
15290101 22
15290102 24
******
想变为:
ID 数据
15280101 12
15280102 30
15280103 24
152801 105
1528 879
******
15290101
15290102
******
152901
1529
长的升序排列,短的放在后面,数据很多的???
Order by Len(ID) Desc
不行
Order by Len(ID) Desc
后的结果:
ID 数据
15280101 12
15280102 30
******
15280201 41
15280202 25
******
152901
152802
152801
1529
1528
不是这个,刚才结贴了,不好意思

...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhblzj 2008-04-08
  • 打赏
  • 举报
回复
经实际运行,2楼的还是不行,谢谢1楼,谢谢各位楼主,结贴了
Limpire 2008-04-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xhblzj 的回复:]
感谢1,2楼,1楼的能得到结果,2楼的得不到,order by ltrim(ID)+replicate('9',100-len(id))
中的9和100是什么意思
[/Quote]
select *, ltrim(ID)+replicate('9',100-len(id)) from #T order by ltrim(ID)+replicate('9',100-len(id))
xhblzj 2008-04-08
  • 打赏
  • 举报
回复
感谢1,2楼,1楼的能得到结果,2楼的得不到,order by ltrim(ID)+replicate('9',100-len(id))
中的9和100是什么意思
zbc1009 2008-04-08
  • 打赏
  • 举报
回复
楼上Limpire正解,如果还包含字母在ID中,则扩大一下范围:

select * from #T order by ltrim(ID)+replicate('z',100-len(id))
Limpire 2008-04-07
  • 打赏
  • 举报
回复
--> 测试数据: #T
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (ID varchar(8),数据 int)
insert into #T
select '1528',879 union all
select '152801',105 union all
select '15280101',12 union all
select '15280102',30 union all
select '15280103',24 union all
select '1529',1421 union all
select '152901',154 union all
select '15290101',22 union all
select '15290102',24

select * from #T order by ltrim(ID)+replicate('9',100-len(id))

/*
ID 数据
-------- -----------
15280101 12
15280102 30
15280103 24
152801 105
1528 879
15290101 22
15290102 24
152901 154
1529 1421
*/
-狙击手- 2008-04-07
  • 打赏
  • 举报
回复
create table ta(ID int,d int)
insert ta select
1528 , 879 union select
152801 , 105 union select
15280101 , 12 union select
15280102 , 30 union select
15280103 , 24 union select
1529 , 1421 union select
152901 , 154 union select
15290101 , 22 union select
15290102 , 24


go

select *
from ta
order by left(id,4) ,len(id) desc

drop table ta

/*
ID d
----------- -----------
15280101 12
15280102 30
15280103 24
152801 105
1528 879
15290101 22
15290102 24
152901 154
1529 1421

(所影响的行数为 9 行)
*/
魔塔游戏开发项目说明 本项目提供基于Python语言开发的魔塔类游戏完整实现方案。游戏构建方式分为源码编译和可执行文件两种模式,以满足不同用户群体的需求。 源码构建流程如下: 1. 运行环境需配置Python 3.10及以上版本 2. 通过系统命令安装必要的第三方依赖库: ```shell python -m pip install pygame ``` 3. 获取项目源码后,在解压目录执行启动命令: ```shell python main.py ``` 预编译版本获取途径: 用户可通过项目发布页面获取两种预打包版本: - 虚拟环境封装版:包含独立Python运行环境,支持直接修改源码并运行,同时提供完整的配置文件说明 - 二进制可执行版:无需安装运行环境,体积更小,支持通过JSON配置文件进行参数调整 技术特性说明: 当前版本已实现基础游戏框架,部分游戏元素尚处于开发阶段。游戏关卡数据可通过配置文件进行完整自定义,为后续功能扩展预留了充分空间。 适用场景: 本工程适用于计算机相关专业的教学实践、课程设计及毕业设计参考,也可作为游戏开发初学者的研究案例。代码结构清晰,注释完整,便于进行二次开发和功能扩展。 注意事项: 项目代码均通过完整测试验证,建议在理解代码结构的基础上进行个性化修改。欢迎技术交流与功能改进建议。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

34,873

社区成员

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

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