我有一個表格,其中一個字段是JSON字符串。在SSRS報告中顯示格式化的JSON
「CX.UW.001」: 「2017年3月8日」, 「CX.UW.001.AUDIT」: 「管理員」,
我想生產地方出現可讀的SSRS報告格式如:
CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin
這可能嗎?
我有一個表格,其中一個字段是JSON字符串。在SSRS報告中顯示格式化的JSON
「CX.UW.001」: 「2017年3月8日」, 「CX.UW.001.AUDIT」: 「管理員」,
我想生產地方出現可讀的SSRS報告格式如:
CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin
這可能嗎?
如果您正在尋找對於多個記錄,幾乎任何分析/拆分功能都可以,或者您可以使用一個簡單的CROSS APPLY與一點XML一起使用
Declare @YourTable table (ID int, JSON varchar(max))
Insert Into @YourTable values
(1,'"CX.UW.001": "03/08/2017", "CX.UW.001.AUDIT": "admin"')
Select A.ID
,DisplayAs = replace(B.RetVal,'"','')
From @YourTable A
Cross Apply (
Select RetSeq = Row_Number() over (Order By (Select null))
,RetVal = LTrim(RTrim(B.i.value('(./text())[1]', 'varchar(max)')))
From (Select x = Cast('<x>' + replace((Select replace(A.JSON,',','§§Split§§') as [*] For XML Path('')),'§§Split§§','</x><x>')+'</x>' as xml).query('.')) as X
Cross Apply x.nodes('x') AS B(i)
) B
返回
ID DisplayAs
1 CX.UW.001: 03/08/2017
1 CX.UW.001.AUDIT: admin
或者如果你希望字符串換
Select A.ID
,DisplayAs = replace(replace(JSON,',',char(13)),'"','')
From @YourTable A
返回
1 CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin
第一個解決方案就像一個魅力。謝謝!! – user7776056
@ user7776056對它有幫助。 –
右鍵單擊該字段,選擇expression
,從Common Functions
類別定位Text
,使用Replace
功能,應該是語法,如:
Replace (Fields!Yours.Value.Value,"""","")
或者在TSQL:
Select Replace(JSON_COLUMN,'"','')
From table
如何'''CX.UW. 001: 03/08/2017 CX.UW.001.AUDIT:admin'''比「'CX.UW.001」更具可讀性:「03/08/2017」,「CX.UW.001.AUDIT」:「管理員」,'''? – Anand
而不是單個字符串,我希望它分解成多行。每個記錄/行的字符串的長度是可變的。 – user7776056