不同的列我怎样才能在列这一特定字符串分割为三个不同的列字符串分割到与SQL
样本:
Column_A
----------
{"nationalCode":"1234567893","username":"123","ip":"::1"}
{"nationalCode":"1234567892","username":"test","ip":"172.30.10.11"}
{"nationalCode":"1234567890"}
{"nationalCode":"1234567891","username":"test"}
应该
nationalcode|username|Ip
---------------------------
1234567893 |123 |::1
1234567892 |test |172.30.10.11
1234567890 |null |null
1234567891 |test |null
我迄今为止只有一个领域尝试过(我不知道如何解决它)
select SUBSTRING(REPLACE(SUBSTRING(ActionInput,CHARINDEX('nationalCode',ActionInput)+len('nationalCode":"'),CHARINDEX(',',ActionInput)),'""',''),0,11) as national1,
REPLACE(SUBSTRING(ActionInput,CHARINDEX('username',ActionInput)+len('username":"'),CHARINDEX(',',ActionInput)),'"}','') as a
from LogTBL
的SQL Server版本? – McNets
@McNets sql-server-2008 –
它总是这三个值的最大值,它们总是按照完全相同的顺序来进行吗?理想情况下,你绝对不应该存储这样的数据。这比xml更糟,违反了1NF。 –