1つのフィールドがJSON文字列であるテーブルがあります。フォーマットされたJSONをSSRSレポートに表示
"CX.UW.001": "2017年3月8日"、 "CX.UW.001.AUDIT": "管理者"、私はそれが読めるに表示されてSSRSレポートを作成したい
形式:
CX.UW.001: 03/08/2017
CX.UW.001.AUDIT: admin
可能ですか?
1つのフィールドがJSON文字列であるテーブルがあります。フォーマットされたJSONをSSRSレポートに表示
"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
それともたい場合は、文字列が
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: '' 'CX.UW.001": "03/08/2017"、 "CX.UW.001.AUDIT": " admin "、" ''? – Anand
単一の文字列ではなく、複数の行に解析する必要があります。文字列の長さは、レコード/行ごとに可変です。 – user7776056