这段代码工作正常,但我有兼容级别为 80 的 SQL2005,所以我不能使用它。
OUTER APPLY
为了使用t.Parameters
列作为参数来运行,我应该用什么代替?
DECLARE @task TABLE
(
ActionTaskId BIGINT,
[Parameters] VARCHAR(512)
)
INSERT INTO @task
SELECT 1, '{"A":"#FFFFFF","B":"#000000"}' UNION
SELECT 2, '{"A":"#EEEEEE","B":"#000000"}'
SELECT *, OA1.Val
FROM @task AS t
OUTER APPLY (SELECT * FROM [dbo].[parseJSON](t.[Parameters]) AS pj WHERE pj.Name='A') OA1
所需输出:
ActionTaskId | Val
----------------
1 | #FFFFFF
2 | #EEEEEE