我有一个字段,其中包含以下内容"格式化"数据:" XYZ100320C00027500"。在这:
从这个字段我需要提取符号,日期(月/日/年),看涨/看跌,罢工(点击美元+点击小数)。我需要提取这些并将它们放在一个表中的各自列中。
非常感谢任何有关如何使用SQL查询执行此操作的帮助或指导。
答案 0 :(得分:0)
这应该有用,虽然它可能效率不高......
MS SQL Server 2012架构设置:
CREATE TABLE Table1
(the_string varchar(21))
;
INSERT INTO Table1
(the_string)
VALUES
('XYZ100320C00027500'),
('ABCDEF120410C00022540')
;
查询1 :
SET DATEFORMAT ymd
SELECT
SUBSTRING(the_string, 0, PATINDEX('%[0-9]%', the_string)) AS [Symbol],
CAST( SUBSTRING(the_string, PATINDEX('%[0-9]%', the_string), 2) + '-' + SUBSTRING(the_string, PATINDEX('%[0-9]%', the_string)+2, 2) + '-' + SUBSTRING(the_string, PATINDEX('%[0-9]%', the_string)+4, 2) AS DATE) AS [Date],
SUBSTRING(the_string, PATINDEX('%[0-9]%', the_string)+6, 1) AS [Call/Put],
CAST(SUBSTRING(the_string, PATINDEX('%[0-9]%', the_string)+7, 5) AS FLOAT) + CAST(SUBSTRING(the_string, PATINDEX('%[0-9]%', the_string)+12, 3) AS FLOAT)/1000 AS [Strike]
FROM table1
<强> Results 强>:
| SYMBOL | DATE | CALL/PUT | STRIKE |
|--------|------------|----------|--------|
| XYZ | 2010-03-20 | C | 27.5 |
| ABCDEF | 2012-04-10 | C | 22.54 |