【发布时间】:2019-10-18 15:52:41
【问题描述】:
我有一个名为 Config 的列,其数据如下,它是一个长字符串
AutoFill = 1 Backgrouns = True StoreAddress1 = '1601 River Road East' StoreAddress2 = '' StoreCity = 'Kitchener' StoreProv = 'ON' StorePostal = 'N2A 3Y4' StorePhone = '(844) 607-6362'
我必须从中提取“1601 River Road East”并将其放在另一个表中作为地址行 1,Kitchener 作为该表中的城市,ON 作为该表中的省,N2A 3Y4 作为邮政编码
StoreAddress1 StoreAddress2 StoreCity 这个词总是会出现在这个长字符串中,用于其他行
我正在使用 Microsoft SQL Server 2016 我知道我必须使用 patindex 和 substring 但无法进行查询
【问题讨论】:
-
到目前为止你尝试过什么?这里真正的问题是您在数据库中存储非规范化数据。希望您希望将此作为修复数据的一次性过程吗?如果没有,那么我建议应该现在作为目标,这样您就可以修复您的设计,而不必在将来像这样处理它。
-
我别无选择,只能这样数据来自源系统,我必须从中提取这些详细信息并将其放在不同的表中
-
也许它应该是您当时应该查看的源系统。甚至像 XML 这样的东西也会比上面的要好得多。 SQL Server 的强项不是字符串操作;它实际上很糟糕,它不支持正则表达式。您上面所拥有的是一个未定界的混搭值。
-
我无法控制源系统,对不起,我的表中的数据是这样的
-
SQL Server 版本?
标签: sql-server