【问题标题】:How to optimize my sql query?如何优化我的 sql 查询?
【发布时间】:2012-09-04 10:38:25
【问题描述】:
SELECT ORG.DESCRIPTION, ORG.EXTERNALKEY,
   (SELECT P.VALUE FROM PROPERTY P, ORGANIZATION ORG WHERE P.IDX=24 AND ORG.ID=P.ID AND ORG.EXTERNALKEY='200004') AS COR_ACCOUNT,
   (SELECT ORG.DESCRIPTION FROM ORGANIZATION ORG WHERE ORG.NAME = P.VALUE) AS CPC,
   (SELECT P.VALUE FROM PROPERTY P, ORGANIZATION ORG WHERE P.IDX = 4 AND P.ID = ORG.ID AND ORG.EXTERNALKEY = '200004') AS VOEN
FROM PROPERTY P, ORGANIZATION ORG
WHERE P.IDX = 22 AND ORG.EXTERNALKEY = '200004' AND P.ID = ORG.ID;

嗨。如何优化这个sql还是正常的?

【问题讨论】:

  • 您能否解释一下您使用表结构和示例数据发布的查询要达到的目的?您发布的查询太难理解了。

标签: sql select query-optimization


【解决方案1】:

我不确定您的确切要求,但我认为下面的 SQL 应该可以工作。

SELECT ORG.DESCRIPTION, ORG.EXTERNALKEY,
CASE WHEN P.IDX = 24 then P.Value END AS COR_ACCOUNT,
(SELECT ORG.DESCRIPTION FROM ORGANIZATION ORG WHERE ORG.NAME = P.VALUE) AS CPC,
  CASE WHEN p.idx = 4 then P.VALUE END AS VOEN
FROM PROPERTY P, ORGANIZATION ORG
WHERE P.IDX in(22,24,4) AND ORG.EXTERNALKEY = '200004' AND P.ID = ORG.ID;

【讨论】:

    【解决方案2】:

    它会优化您的查询

    SELECT ORG.DESCRIPTION,ORG.EXTERNALKEY,
    CASE WHEN ORG.EXTERNALKEY='200004' AND P.IDX=24 THEN P.VALUE END AS COR_ACCOUNT,
    (SELECT ORG.DESCRIPTION FROM ORGANIZATION ORG WHERE ORG.NAME = P.VALUE) AS CPC,
    CASE WHEN ORG.EXTERNALKEY='200004' AND P.IDX=4 THEN P.VALUE END AS VOEN,
    FROM PROPERTY P, ORGANIZATION ORG
    WHERE P.IDX = 22 AND ORG.EXTERNALKEY = '200004' AND P.ID = ORG.ID;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多