請你幫我優化查詢。我們正在使用相關的子查詢來解決我們的問題。如何提高性能並刪除相關的子查詢。刪除相關的子查詢
SELECT CAST((CASE WHEN value = 1
THEN CASE WHEN (SELECT COUNT(records)
FROM ABC
WHERE ABC.ID = XYZ.ID) > 0
THEN 1
ELSE 0 END
ELSE CASE WHEN (SELECT COUNT(records)
FROM PQR
WHERE PQR.ID = XYZ.ID) > 0
THEN 1
ELSE 0 END END) AS AA) AS COLUMN FROM XYZ
那你能不能給一些樣品輸入數據和所需的輸出 - 這將有助於理解您嘗試實現的目標。 – wwkudu
相關的子查詢不一定很慢。在某些情況下,它們甚至可能是最快的方法。正如Arth的回答所示,它是'EXISTS',但是你應該使用,而不是'COUNT'。爲了使這個不相關,你可以使用'IN',但是如前所述,這並不一定意味着查詢變得更快;它甚至會變慢。以任何方式確保在有問題的列上有索引。 –