MYSQL:根据条件选择特定的列值
我有一张带列的桌子MYSQL:根据条件选择特定的列值,mysql,Mysql,我有一张带列的桌子 id doctor_name charges_cash charges_cashless 1 1 300 600 2 2 200 400 现在我正在尝试运行此查询: SELECT ipd.patient_name, r.room_name, doctor.doctor_name, CASE p.tpa_name WHEN NULL THEN i.charges_cash EL
id doctor_name charges_cash charges_cashless
1 1 300 600
2 2 200 400
现在我正在尝试运行此查询:
SELECT ipd.patient_name, r.room_name, doctor.doctor_name,
CASE p.tpa_name
WHEN NULL
THEN i.charges_cash
ELSE i.charges_cashless
END AS 'charges'
FROM `daily_ward_entry` d, ipd_charges i, ipd_patient_entry ipd, room_charges r,
patient_detail p, doctor
WHERE d.doctor_visit_name = i.doctor
AND r.id = d.room_name
AND d.patient_name = ipd.id
AND d.doctor_visit_name = doctor.id
我得到的收费结果为400,而p.tpa_name为空,我预计为200,
我不知道我到底做错了什么
结果集是这样的
patient_name room_name doctor_name charges
Sapna Agrawal MG-1 Dr. Dungri 400
谢谢。与
NULL
相比,您需要IS
运算符
CASE WHEN p.tpa_name IS NULL
THEN i.charges_cash
ELSE i.charges_cashless
END AS 'charges'
您缺少了其余的表?可能是您的一些表有多个匹配的行,因此在主表上有重复的行。但是,如果不知道表结构是什么,不知道测试数据的一些概念,就很难判断。