基于条件在SQL Server中的分隔字符串
问题描述:
我有一个分隔基于条件在SQL Server中的分隔字符串
string ";2;5;2;5;04/02/2014;3;100.000000;5;04/02/2015;3;100.000000;5;04/02/2016;3;100.000000;5;04/02/2017;3;100.000000;5;04/02/2018;3;100.000000;"
格式的数据以子串如下:
1st character: Delimiter used within this format field
Number of dimensions
Delimiter
Number of rows
Delimiter
Number of columns
Delimiter
...Data Elements…
Delimiter
我想提取里面这个数据查询或函数来获取表格格式的数据元素,如
ScheduleDate ScheduleValue
04/02/2015 100.000000
04/02/2016 100.000000
04/02/2017 100.000000
04/02/2018 100.000000
04/02/2016 34428.9700
04/02/2017 34428.9700
04/02/2018 34428.9700
04/02/2019 34428.9700
也在这里“5”
表示日期,“04/02/2015”
是实际日期,“3”
表示价格,“100.00000”
表示实际价格。 同样其他指标,如:
1 Character
2 Numeric
3 Price
4 Security
5 Date
6 Time
7 Date or time
8 Bulk
9 Month/Year
我需要在功能或查询配置,以适应这一点。 如果有人能帮忙,我会非常感激。
答
摆脱了前三个参数的,你可以这样做的一件事:
DECLARE @string VARCHAR(max)
SET @string=';2;5;2;5;04/02/2014;3;100.000000;5;04/02/2015;3;100.000000;5;04/02/2016;3;100.000000;5;04/02/2017;3;100.000000;5;04/02/2018;3;100.000000;'
DECLARE @newstring VARCHAR(MAX)
SET @newstring=CAST((SELECT CAST('<Node>'+REPLACE(@string,';',';</Node><Node>')+'</Node>' AS XML).query('//Node[position()>4]/text()')) AS VARCHAR(MAX))
SELECT @newstring
所以这基本上都会让你的数据类型和数据,你可以用你提到
现有代码解析
我已经尝试使用分离功能分离数据,但我需要拿出一个可配置的表值函数,这将需要所有这些参数的计数给我的输出。任何建议如何去优化方法将不胜感激。 – WPFGuy
SQL服务器中没有分割功能;你有没有自己编写或者你使用.NET? – Jayvee
我已经写在SQL Server中。 – WPFGuy