提案されたクエリを Sybase ASE 12 で使用しようとしましたが、構文エラーが発生しました。
SELECT
item,
( SELECT TOP 1 tags.tag
FROM #tags tags
LEFT JOIN t o
ON tags.tag = o.tag
AND o.item_id = n.item_id
WHERE o.tag IS NULL
ORDER BY tags.tag
) 'tag',
value
FROM
t_new n
エラー:Incorrect syntax near the keyword 'top'.
TOP 1 tag
ただし、( ... ORDER BY tag
) を MAX()に置き換えた場合、同じクエリが機能しました。
SELECT
item,
( SELECT max(tags.tag)
FROM #tags tags
LEFT JOIN t o
ON tags.tag = o.tag
AND o.item_id = n.item_id
WHERE o.tag IS NULL
-- ORDER BY tags.tag
) 'tag',
value
FROM
t_new n
(
TOP 1 tag
...ORDER BY tag
) を使用すると、Sybase の相関サブクエリで問題が発生するのはなぜですか?min()/max() を使用しない元のクエリに対する修正はありますか?