首页 > 解决方案 > 声纳曲。使用 union 解析 CROSS APPLY 中的错误,但一切看起来都不错

问题描述

我有大约 1k 行的带有 sql 函数的文件。Sonar 在此文件上引发错误。代码本身可以正常工作。这是错误所在请求的一般视图。解析错误消息指向 '^' 上方的符号

 INSERT INTO foo
SELECT
  ...
FROM foo
JOIN ..
JOIN ...
CROSS APPLY (SELECT TOP (1)
    ...
  FROM ...
  WHERE ...
  ORDER BY ..
  UNION
  ^
  SELECT TOP (1) 
    ...
  FROM ...
  JOIN ...
  JOIN ...
  WHERE ...
  ORDER BY ...
) pp

标签: sqlsql-serversonarqube

解决方案


      INSERT INTO foo
        SELECT
          ...
        FROM foo
        JOIN ..
        JOIN ...
        CROSS APPLY ((SELECT TOP (1)
            ...
          FROM ...
          WHERE ...
          ORDER BY ..)
          UNION
          ^
(          SELECT TOP (1) 
            ...
          FROM ...
          JOIN ...
          JOIN ...
          WHERE ...
          ORDER BY ..)
        ) pp

推荐阅读