仅从SQL列中选择特定模式

时间:2013-08-31 22:56:18

标签: sql sql-server

我需要从SQL列中仅选择特定模式。它是一个XML类型的列,但它没有格式化为XML。以下是一个记录可能包含在字段中的示例:

taSopDistribution
i   3
s   W-13-I73516502
:d:
i   7
:d:
:d:
s   60-99-9999-99-20950-00
m   0
m   5.8800
s   W-13
:d:
:d:
:d:
:d:
:d:
:d:
s   60-99-9999-00-60950-00

我需要能够查询此字段并仅选择遵循此模式的数据:##-##-####-##-#####-##,并且会有多个匹配。

例如,我需要一个从上面的示例数据字段返回以下值的查询:

60-99-9999-99-20950-00
60-99-9999-00-60950-00

对此的任何帮助将不胜感激!仅供参考,我使用的是SQL Server 2012

1 个答案:

答案 0 :(得分:0)

这可以解决问题:

SELECT substring(taSopDistribution,5,len(taSopDistribution)-5)
FROM Table1
WHERE taSopDistribution
LIKE '%-__-____-__-_____-__'

<强>结果:

|              COLUMN_0 |
|-----------------------|
| 60-99-9999-99-20950-0 |
| 60-99-9999-00-60950-0 |

参见 SQLFIDDLE