SQL:如何将字符串文本添加到我的 CTE 输出
SQL: How to add string text to my CTE output
我有一个 SQL 问题。我想在视图的 JSON 结果前面添加一个文本值。我现在可以将我的视图结果显示为 JSON,然后显示为 return,结果为 "SELECT * FROM @TABLE"。
我的 ETL 过程需要这个 return 查询。
我的 CTE 现在的输出是:
{"SystemType":"XX","SourceSystemName":"XX"}
我想要的结果是:
,"pipelineParameters":{"SystemType":"XX","SourceSystemName":"XX"}
我现在拥有的:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [Schema].[StoredProcedure]
AS
SET NOCOUNT ON;
BEGIN
DECLARE @TABLE TABLE(RESULT NVARCHAR(MAX))
DECLARE @QUERY NVARCHAR(MAX) = '
;WITH x(Name) as
(
SELECT * FROM [Schema].[View] FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
)
Select * from x
'
Insert @TABLE
EXEC (@QUERY)
Select * from @TABLE;
END
GO
我可能过于简化了这一点,但为什么不直接将字符串的开头连接到结果列呢?
即替换最后的:
select * from @TABLE;
与:
select ',"pipelineParameters":' + name from @TABLE
我有一个 SQL 问题。我想在视图的 JSON 结果前面添加一个文本值。我现在可以将我的视图结果显示为 JSON,然后显示为 return,结果为 "SELECT * FROM @TABLE"。
我的 ETL 过程需要这个 return 查询。
我的 CTE 现在的输出是:
{"SystemType":"XX","SourceSystemName":"XX"}
我想要的结果是:
,"pipelineParameters":{"SystemType":"XX","SourceSystemName":"XX"}
我现在拥有的:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [Schema].[StoredProcedure]
AS
SET NOCOUNT ON;
BEGIN
DECLARE @TABLE TABLE(RESULT NVARCHAR(MAX))
DECLARE @QUERY NVARCHAR(MAX) = '
;WITH x(Name) as
(
SELECT * FROM [Schema].[View] FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
)
Select * from x
'
Insert @TABLE
EXEC (@QUERY)
Select * from @TABLE;
END
GO
我可能过于简化了这一点,但为什么不直接将字符串的开头连接到结果列呢?
即替换最后的:
select * from @TABLE;
与:
select ',"pipelineParameters":' + name from @TABLE