[英]How do I populate .net datasets from multiple tables using vb.net from oracle 11g
[英]Multiple conditions in select query using Oracle 11g
我有一張表,我正在嘗試在多個條件下運行查詢
select POLICY_REFER,
END_REFER,
CLIENT_NAME,
POLICY_PRODUCT,
ISSUE_DATE,
GROSS,
DOC_TYPE,
DOC_STATUS
from POLICY_MASTER
ISSUE_DATE日期:D發自AND:D發至
DOC_STATUS ='已停放'
這兩個條件必須匹配
CLIENT_NAME =:客戶端或CLIENT_NAME為空
POLICY_PRODUCT =:產品或POLICY_PRODUCT為空
這兩個取決於從組合框中選擇的內容,為此,我將其編寫為
select POLICY_REFER,
END_REFER,
CLIENT_NAME,
POLICY_PRODUCT,
ISSUE_DATE,
GROSS,
DOC_TYPE,
DOC_STATUS
from POLICY_MASTER
where ISSUE_DATE BETWEEN :DFrom AND :DTo
and CLIENT_NAME = :Client or CLIENT_NAME is null
and POLICY_PRODUCT = :Product or POLICY_PRODUCT is null
and DOC_STATUS = 'Parked'"....
此查詢可以接受POLICY_PRODUCT為空,但不能與CLIENT_NAME一起使用為空...
我懷疑問題是您缺少您or
條件周圍的括號,例如,我認為您的查詢應符合以下方面:
select POLICY_REFER,
END_REFER,
CLIENT_NAME,
POLICY_PRODUCT,
ISSUE_DATE,
GROSS,
DOC_TYPE,
DOC_STATUS
from POLICY_MASTER
where ISSUE_DATE BETWEEN :DFrom AND :DTo
and (CLIENT_NAME = :client or :client is null)
and (POLICY_PRODUCT = :product or :product is null)
and DOC_STATUS = 'Parked'"....
查詢似乎工作正常。 我認為問題出在列CLIENT_NAME的屬性,請檢查列的屬性是否存在,因為有些屬性不允許查詢中使用空值
select POLICY_REFER,
END_REFER,
CLIENT_NAME,
POLICY_PRODUCT,
ISSUE_DATE,
GROSS,
DOC_TYPE,
DOC_STATUS
from POLICY_MASTER
where (ISSUE_DATE BETWEEN :DFrom AND :DTo)
and (CLIENT_NAME = :Client or CLIENT_NAME is null)
and (POLICY_PRODUCT = :Product or POLICY_PRODUCT is null)
and DOC_STATUS = 'Parked'"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.