根据列值执行where子句
嗨,所以这是我的问题。
我需要查询一个where子句,条件取决于某个字段的值。
继承人的结构:
ID NAME CUSTOMERTYPE STUDENTNO
基本上在这里;是lofic:
SELECT * FROM TRANSACTTABLE WHERE ID <> ''AND(NAME <> ''
--CASE WHEN CUSTOMERTYPE='STUDENT' THEN EXCEUTE THIS QUERY:
AND STUDENTNO <> '')
--ELSE WHEN CUSTOMERTYPE <> 'STUDENT' THEN EXECUTE JUST THIS:
)
请帮助。致谢
答案 0 :(得分:0)
您的查询显示了一些奇怪的设计 - ID
和CUSTOMERTYPE
类型'string'
,您确定应该这样做吗?
SELECT *
FROM TRANSACTTABLE
WHERE ID <> '' AND
NAME <> '' AND
(CUSTOMERTYPE <> 'STUDENT' OR STUDENTNO <> '')
答案 1 :(得分:0)
在MySQL中你可以像这样使用IF函数
SELECT * FROM TRANSACTTABLE
WHERE ID <> '' AND IF(CUSTOMERTYPE='STUDENT',STUDENTNO <> '',1=1)