sql - SQL While 循环存在
问题描述
我正在尝试从 SQL 中的一个单元格获取日期列表。这些日期都在 SQL 中的一个单元格中"....d|43460)())(0||1(d|42534)())(0||2(d|40910)())(0||3(d|41855)..."
我设法编写了一个获取第一个日期的查询
SELECT Substring (clndr_data , CHARINDEX('d|', clndr_data)+2, 5)
FROM [x].[dbo].[CALENDAR]
where clndr_id = '954'
我需要获取所有其他日期,所以我假设我必须使用 While 或 Loop 来获取 'd|' 之后的所有日期?如果有人可以提供帮助,将不胜感激。
所需输出(这应该是一个列表,但我不能在这里显示):
Number Date
43460 26/12/2018
42534 13/06/2016
40910 02/01/2012
解决方案
您可以将clndr_data
其视为分隔字符串并使用分隔字符串拆分器将其拆分为列表中的多个项目。在这里我")("
用作分隔符
这里我使用DelimitedSplit8K()
的是来自http://www.sqlservercentral.com/articles/Tally+Table/72993/的 Jeff Moden
注意:您需要先创建函数
SELECT clndr_data, right(Item, 5) as Number
FROM [x].[dbo].[CALENDAR]
CROSS APPLY dbo.DelimitedSplit8K(clndr_data, ')(')
where clndr_id = '954'
and Item like '%d|%'
推荐阅读
- abap - WSAECONNRESET:对等 Netweaver 重置连接
- batch-file - 批处理:“%~1”有效,但“%~*”是语法错误。如何找到等效的命令?
- bash - awk 脚本从 txt 文件中读取数据
- c++ - 在未链接的部分生成警告
- openwrt - 编译 openwrt 以包含 tc 和 netem
- algorithm - 在 2D 平面中划分一组点
- python - How to make a pictogram / icon chart?
- c++ - C++ Main 函数将无法识别我的类
- r - Rename vector rownames
- python - 如何在 pyqt4 的网格顶部添加列