Oracle SQL条件仅限于

时间:2017-03-23 11:27:56

标签: sql oracle

我需要帮助来弄清楚如何定义这种结果仅取决于列

中的特定值
WHERE ( ( CUSTOMFIELDVALUE.STRINGVALUE=TO_CHAR(CUSTOMFIELDOPTION.ID))  {?} (CUSTOMFIELD.CFNAME='Type of workload' )  AND CUSTOMFIELDOPTION.CUSTOMVALUE='Performed' )

条件( CUSTOMFIELDVALUE.STRINGVALUE=TO_CHAR(CUSTOMFIELDOPTION.ID))仅在CUSTOMFIELD.CFNAME(CUSTOMFIELD.CFNAME='Type of workload' )

时应用

提前谢谢。

3 个答案:

答案 0 :(得分:1)

据我了解你的问题:

WHERE   (CUSTOMFIELDVALUE.STRINGVALUE = TO_CHAR(CUSTOMFIELDOPTION.ID)
         AND CUSTOMFIELD.CFNAME = 'Type of workload'
         AND CUSTOMFIELDOPTION.CUSTOMVALUE = 'Performed')
         OR 
         ( (CUSTOMFIELD.CFNAME  IS NULL OR CUSTOMFIELD.CFNAME <> 'Type of workload')
         AND CUSTOMFIELDOPTION.CUSTOMVALUE = 'Performed')

可以改写:

WHERE   CUSTOMFIELDOPTION.CUSTOMVALUE = 'Performed' 
        AND ( (CUSTOMFIELDVALUE.STRINGVALUE = TO_CHAR(CUSTOMFIELDOPTION.ID)
             AND CUSTOMFIELD.CFNAME = 'Type of workload'
            )
             OR 
             ( (CUSTOMFIELD.CFNAME  IS NULL OR CUSTOMFIELD.CFNAME <> 'Type of workload') )

答案 1 :(得分:0)

我会使用带有2个不同查询的UNION运算符

SELECT * FROM TABLE WHERE CUSTOMFIELD.CFNAME='Type of workload' AND CUSTOMFIELDVALUE.STRINGVALUE=TO_CHAR(CUSTOMFIELDOPTION.ID) AND AND CUSTOMFIELDOPTION.CUSTOMVALUE='Performed'
UNION
SELECT * FROM TABLE WHERE CUSTOMFIELD.CFNAME<>'Type of workload' AND CUSTOMFIELDOPTION.CUSTOMVALUE='Performed'

希望这有帮助

答案 2 :(得分:0)

这是整个查询,目标是在执行工作负载类型和接受解决方案(RESOLUTION = 8)时,列出特定问题的所有可用字段。

问题是必须仅用于CUSTOMVALUE ='Performed'的条件CUSTOMFIELD.CFNAME ='工作负载类型'

条件:

AND  ( CUSTOMFIELDVALUE.STRINGVALUE=TO_CHAR(CUSTOMFIELDOPTION.ID) AND CUSTOMFIELDOPTION.CUSTOMVALUE='Performed' )

整个查询:

 SELECT DISTINCT
  JIRAISSUE.ISSUENUM,
  JIRAISSUE.SUMMARY,
  PROJECT.PNAME,
  CUSTOMFIELD.CFNAME,
  CUSTOMFIELDVALUE.STRINGVALUE,
  CUSTOMFIELDVALUE.ID,
  CUSTOMFIELDVALUE.NUMBERVALUE,
  CUSTOMFIELDOPTION.CUSTOMVALUE,
  ISSUETYPE.PNAME
FROM
  JIRAISSUE,
  PROJECT,
  CUSTOMFIELDVALUE,
  CUSTOMFIELD,
  CUSTOMFIELDOPTION,
  ISSUETYPE
WHERE  ( CUSTOMFIELDVALUE.ISSUE=JIRAISSUE.ID )
  AND  ( CUSTOMFIELDVALUE.CUSTOMFIELD=CUSTOMFIELD.ID )
  AND  ( CUSTOMFIELD.ID=CUSTOMFIELDOPTION.CUSTOMFIELD)
  AND  ( CUSTOMFIELDOPTION.CUSTOMFIELD=CUSTOMFIELDVALUE.CUSTOMFIELD ) 
  AND  ( JIRAISSUE.ISSUETYPE=ISSUETYPE.ID  )
  AND  ( PROJECT.ID=JIRAISSUE.PROJECT  )
  AND    CUSTOMFIELD.CFNAME  IN  ( 'Type of workload', 'ANA-PROG extramuros','ANA-PROG intramuros','TEC-CONS extramuros','TEC-CONS intramuros','PRO-MAN extramuros','PRO-MAN intramuros'  )
  AND    PROJECT.PNAME  IN  ( 'eNotices', 'TED Applications', 'TED Web Services', 'TED-Monitor-2012',  'eTendering'  )
  AND  ( CUSTOMFIELDVALUE.STRINGVALUE=TO_CHAR(CUSTOMFIELDOPTION.ID) AND CUSTOMFIELDOPTION.CUSTOMVALUE='Performed' )
  AND    JIRAISSUE.RESOLUTION=8
ORDER by issuenum;