0
使用SQL Server,我已经在一个表中的列如下数据:选择从一个字符串字段串XXXX
NFPA 1: 4.5.8.1, SFM 69A-21
NFPA 101:7.2.1.8.
NFPA 1 14.13.1.1*
NFPA 101 7.2.1.15.8
NFPA 1 13.6.9.3.1.1.1
NFPA 101:7.1.3.2.1 (6)
?NFPA ?1 14?.?6?.?3?*
我想选择只是XXXX(.X)(X)记录等有一段时间的序列。我还想在输出中显示x.x.x.x。(.x)(.x)等数据,而不是在期间之前或之后显示数据。例如,从上面的数据,以下将显示为sql select的输出:
4.5.8.1
7.2.1.8
14.13.1.1
7.2.1.15.8
13.6.9.3.1.1.1
7.1.3.2.1
[THIS RECORD WOULD NOT BE SELECTED BECAUSE THE DATA IS NOT IN THE FORMAT: ?NFPA ?1 14?.?6?.?3?*]
任何帮助,将不胜感激先谢谢。
UPDATE:请检查SQL小提琴:
**更新#2 **:至今没有答案,希望有人可以提供帮助。
'like'%[0-9]。[0-9]。[0-9]。[0-9]%'' –
您的示例输出中最后返回的值会如何返回?它不符合该模式,因为在101之后有一个冒号,而不是一段时间。如果它有效,请更新您的模式。如果无效,请修正样本输出。 –
只是一个警告:SQL在处理需要提取的文本时相对较差。它可以做到这一点,但是因为SQL的设计强调字段应该是原子的(第一范式),所以你会为此而挣扎。您可能通过'PATINDEX'(需要全文索引)或者使用CLR函数获得成功,但是您的最佳选择是在a)您的应用程序中处理此问题,或者b)通过将必要数据存储在单独的字段中它是自己的实体。 –