Sql 我想知道如何使用大量的OR子句。谢谢

Sql 我想知道如何使用大量的OR子句。谢谢,sql,oracle,Sql,Oracle,错误:ORA-00920:无效的关系运算符 选择不同的B.MILESTONE\u名称、D.TASK\u名称、F.FIELD\u名称、F.FIELD\u别名、G.VALUE 来自TBL_应用程序tblapp tblwflow.APPLICATION上的内部联接TBL\u工作流tblwflow\u FK=tblapp.APPLICATION\u PK A.WORKFLOW\u FK=tblwflow.WORKFLOW\u PK上的内部联接TBL\u工作流\u定义A 内部连接TBL\U里程碑B在B.M

错误:ORA-00920:无效的关系运算符

选择不同的B.MILESTONE\u名称、D.TASK\u名称、F.FIELD\u名称、F.FIELD\u别名、G.VALUE
来自TBL_应用程序tblapp
tblwflow.APPLICATION上的内部联接TBL\u工作流tblwflow\u FK=tblapp.APPLICATION\u PK
A.WORKFLOW\u FK=tblwflow.WORKFLOW\u PK上的内部联接TBL\u工作流\u定义A
内部连接TBL\U里程碑B在B.MILESTONE\u PK=A.START\u MILESTONE\u FK或B.MILESTONE\u PK=A.END\u MILESTONE\u FK上
C.MILESTONE上里程碑C的内部连接TBL\U任务\U=B.MILESTONE\U PK
内部连接TBL_任务D在D.TASK_PK=C.TASK_FK上
E.TASK\u FK=D.TASK\u PK上的任务E的内部连接TBL\u REQ\u
内部连接TBL\U任务要求F对F。任务要求\U PK=E。任务要求\U FK
内部连接TBL\U项目需求值G在G.TASK\U REQUIREMENT\U FK=F.TASK\U REQUIREMENT\U PK上
内部连接TBL_项目H ON H.PROJECT_PK=G.PROJECTS_FK
其中PROJECT\u PK=:PROJECT\u ID
或者B.你的名字
或D.任务名称
或F.字段名称
或F.FIELD\u别名
或G.VALUE为空
按B.里程碑名称、D.任务名称、F.字段名称、F.字段别名、G.值分组

这是无效的Oracle SQL:

WHERE 
    PROJECT_PK = :PROJECT_ID 
    OR B.MILESTONE_NAME 
    OR D.TASK_NAME 
    OR F.FIELD_NAME 
    OR F.FIELD_ALIAS 
    OR G.VALUE IS NULL
您需要重复
为空
条件:

WHERE 
    PROJECT_PK = :PROJECT_ID 
    OR B.MILESTONE_NAME IS NULL
    OR D.TASK_NAME IS NULL
    OR F.FIELD_NAME IS NULL
    OR F.FIELD_ALIAS IS NULL
    OR G.VALUE IS NULL
旁注:查询的以下部分:

INNER JOIN TBL_MILESTONE B 
    ON B.MILESTONE_PK = A.START_MILESTONE_FK  OR B.MILESTONE_PK = A.END_MILESTONE_FK
可以使用操作符中的
缩短:

INNER JOIN TBL_MILESTONE B 
    ON B.MILESTONE_PK IN (A.START_MILESTONE_FK, A.END_MILESTONE_FK)

请解释您想要实现的逻辑。从非工作代码看不清楚。我想要一个结果,在4列中,我只在1列中得到一个结果,然后其余的为空。第二:我想要一个结果,在4列中,我将在2列中得到一个结果,然后其余的为空。第三,我想要一个结果,在4列中,我将在3列中得到一个结果,然后其余的为空。这就是为什么我有一个or子句的条件,它是null result:1st:B.MILESTONE\u NAME=data D.TASK\u NAME=null F.FIELD\u NAME=null F.FIELD\u ALIAS,G.VALUE=null第二个:result:B.MILESTONE\u NAME=data D.TASK\u NAME=data F.FIELD\u NAME=null F.FIELD\u ALIAS,G.VALUE=null第三个:结果:B.MILESTONE\u NAME=data D.TASK\u NAME=data F.FIELD\u NAME=data F.FIELD\u ALIAS,G.VALUE=null它们中的任何一个都不重要,如果一列只有一个数据。但我希望另一列的结果包含null。