当子id包含'.'时sql server中的分层排序

2023-12-05

我有一些像下面这样的孩子

childid
------------

1.1
1.2
2.8
2.7
6.5
6.5.1
6.5.15
7.1
8

排序顺序将是

childid 
--------
1.1
1.2
2.7
2.8
6.5
6.51
6.5.15
7.1

我尝试转换为整数,如下所示

declare @str nvarchar(max)='1.23.2';

set @str=(select replace(@str,'.',''))
select @str

但它失败时

7.1
8

来了 它给出的顺序如下

8
7.1 

但我需要像下面这样的订单

7.1
8

另外,如果数字像

7.1.1
7.1.8
6.7.7.7

那么顺序应该是

6.7.7.7
7.1.1
7.1.8

我希望有人能帮助我解决这个问题


试试这样:

编辑:我也更改了处理“123abc”等非数字值的方法。

declare @ids table(idList varchar(100))
insert into @ids values
 ('1.1')
,('1.2')
,('2.8')
,('2.7')
,('6.5')
,('6.5.1')
,('6.5.15')
,('7.1')
,('8');

select idList,padded.OrderBy
from @ids as ids
cross apply(select cast('<r>' + replace(idList,'.','</r><r>') + '</r>' as xml)) as AsXml(val)
cross apply
(
    select right('                ' + rtrim(x.y.value('.','varchar(max)')),10) 
    from AsXml.val.nodes('/r') as x(y)
    for xml path('')
) as padded(OrderBy)
order by padded.OrderBy
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当子id包含'.'时sql server中的分层排序 的相关文章

随机推荐

  • Android:在操作栏上添加 searchView

    我的完整项目如下 有一个listView连接到数据库和带建议的搜索选项 我想将此搜索栏移至操作栏并格式化它就像Google Play 商店搜索栏 请帮助我 我的完整代码是 MainActivity java package com Gurb
  • 输出到[Word]文档时,如何在SSRS(RDLC报告)的每个页面上重复表组标题?

    正如中提到的微软文档 Word 不会在第二页及以上页面重复标题行 尽管您 设置 tablix 中静态标题行的 RepeatOnNewPage 属性 表 矩阵或列表 为 True 您可以定义显式分页符 在报告中强制标题行出现在新页面上 然而
  • python 中的网页抓取 urlopen

    我正在尝试从该网站获取数据 http www boursorama com includes cours last transactions phtml symbole 1xEURUS 看来 urlopen 没有得到 html 代码 我不明
  • 自定义每个环境执行的 SQL

    我们使用 Flyway 来从 dev gt uat gt prod 推广我们的应用程序 使用 Flyway 来使用轻量级 SQL 数据库 例如 Derby 或 H2 将应用程序部署到开发人员桌面将非常有用 由于各种原因 对于我们的一些开发人
  • 尝试触发任何 Perforce 命令时,每次都必须在命令行中设置端口

    我是 Perforce 的新手 需要在命令行中工作 我很困惑为什么教程网站上的所有命令都写成这样 p4 命令 但每次尝试触发该命令时我都必须添加端口 例如 p4 同步 我必须输入 p4 p myhost myport 每次即使在登录后也会同
  • 附加频率表 - 带有缺失值

    目标是生成一个包含我选择的所有变量 关于 4 份报纸的阅读习惯 的频率表 这些变量本质上具有相同的可能值 1 Subscribed 2 Every week 3 Sometimes 4 Never 0 NA No Answers 如果变量之
  • 在用户控件 asp.net 中使用页面方法的替代方法

    有没有一种方法可以在用户控件内实现页面方法的功能 感谢任何帮助 谢谢 最简单的方法可能是将您想要的功能放入网络服务中 然后使用脚本服务属性以使其可用 工作原理与页面方法非常相似 相当广泛的例子here
  • Java:wait() 是否从同步块中释放锁

    我的印象是 wait 释放所有锁 但我发现这篇文章说 在同步方法内调用 wait 是获取内在锁的简单方法 请澄清我有点困惑 http docs oracle com javase tutorial essential concurrency
  • 将可迭代元素或不可迭代元素展开到数组中,而不检查元素 .length

    Given html div div div div calling document querySelector div 返回第一个div元素 其中 length不是返回值的属性 Calling document querySelecto
  • Oracle:不是按表达式分组错误

    以下是我的查询 我不确定是什么原因导致 Not A group by 表达式错误 任何帮助深表感谢 SELECT c courseID c courseName AVG a Mark as Average Mark FROM course
  • 如何使聊天中的链接可点击

    我的网站上有一个聊天 它从 JSON 文件读取并获取每条消息 然后使用Vue js 但是 我的问题是 当用户发布链接时 它不包含在锚标记中 a href a 因此它不可点击 我看到了这个post 我认为这样的东西会起作用 但是 我不允许向该
  • 如何在 Windows 上设置 gl3w?

    我一直在寻找设置 Gl3w 的详细指南 因为我到处都找不到 首先 下载gl3w https github com skaslev gl3w 然后 下载 Python 3 x https www python org downloads 接下
  • 关于HTML中相对文件路径的问题

    已经有一些关于这个主题的帖子 但对我没有帮助 我已经为 HTML 和 CSS 页面制作了地图结构 但无法将它们相互链接 我的地图结构 采购订单网页设计 Homepage HTML 页面主页 CSS 页面主页 图片主页 Sports HTML
  • Android意图语法

    在我尝试找出如何在应用程序中启动新意图的过程中 我遇到了几种表达它的方法 此语法返回运行时错误 即 ActivityNotFound 异常 Intent in new Intent com something something 当然 我的
  • API设计中如何避免“参数过多”问题?

    我有这个API函数 public ResultEnum DoSomeAction string a string b DateTime c OtherEnum d string e string f out Guid code 我不喜欢它
  • heightForRowAt 与estimatedHeightForRowAt 有什么区别?

    通常当我想设置行高时然后设置 func tableView tableView UITableView heightForRowAt indexPath IndexPath gt CGFloat return 300 受益者是什么estim
  • 将表格从 Word 复制粘贴到 Excel

    我有一个定期更新的word文档 我可以进入该 Word 文档 选择整个表格的内容并复制 然后进入 Excel 电子表格并将其粘贴 搞砸了 但是 我将其修复如下 sht Cells UnMerge sht Cells ColumnWidth
  • 在android中连接到oracle

    所以人们可能会告诉我这是一个坏主意 但我至少想尝试一下 EDIT该应用程序的目的是 仅当设备属于 oracle db 所在网络或通过 VPN 连接到网络时 它才能工作 数据库中的信息无法全局访问 这就是为什么我需要直接连接到 oracle
  • vue,如何动态地、以编程方式、单击将组件添加到 DOM 特定位置?

    我需要添加一个动态导入的组件 只需将虚拟标签添加到 DOM 结构中的特定位置即可 不幸的是 我发现的每一种方法都没有解决我的问题 我首先如何尝试 父组件 Editor vue
  • 当子id包含'.'时sql server中的分层排序

    我有一些像下面这样的孩子 childid 1 1 1 2 2 8 2 7 6 5 6 5 1 6 5 15 7 1 8 排序顺序将是 childid 1 1 1 2 2 7 2 8 6 5 6 51 6 5 15 7 1 我尝试转换为整数