根据列值执行where子句

时间:2011-10-07 07:20:28

标签: sql

根据列值执行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:
)

请帮助。致谢

2 个答案:

答案 0 :(得分:0)

您的查询显示了一些奇怪的设计 - IDCUSTOMERTYPE类型'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)