我只想将这个函数查询从navicat转换为sqlite查询,
Select * from tbl_sample where ID = 1 And IF (
RECEIPT_MODE = 'MANUAL',
DATE(a.MANUAL_COLLECTION_DATE) = DATE('2016-08-10 04:18:00'),
DATE(TPAY_ISSUED_DATE) = DATE('2016-08-10 04:18:00')
)
尝试这个查询:
SELECT *
FROM tbl_sample
WHERE ID = 1 AND
(
(RECEIPT_MODE = 'MANUAL' AND
DATE(a.MANUAL_COLLECTION_DATE) = DATE('2016-08-10 04:18:00')) OR
(RECEIPT_MODE <> 'MANUAL' AND
DATE(TPAY_ISSUED_DATE) = DATE('2016-08-10 04:18:00'))
)
使用 DNF 到 CNF 重写规则来减少括号/嵌套的级别:
SELECT *
FROM tbl_sample
WHERE ID = 1
AND ( RECEIPT_MODE <> 'MANUAL' OR
DATE(a.MANUAL_COLLECTION_DATE) = DATE('2016-08-10 04:18:00') )
AND ( RECEIPT_MODE = 'MANUAL' OR
DATE(TPAY_ISSUED_DATE) = DATE('2016-08-10 04:18:00') )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)