0

我需要从 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

4

1 回答 1

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

于 2013-08-31T23:34:46.717 回答