mysql case语句中断
我使用下面的mysql case语句中断,mysql,case,Mysql,Case,我使用下面的case语句来处理sql中的枚举。但它返回了错误的结果 SELECT material_name,material_id,grade_id,subject_id,course_term_id, CASE grade_id WHEN grade_id = 1 THEN "一年级" WHEN grade_id = 2 THEN "二年级" WHEN grade_id =
case
语句来处理sql中的枚举。但它返回了错误的结果
SELECT material_name,material_id,grade_id,subject_id,course_term_id,
CASE grade_id
WHEN grade_id = 1 THEN "一年级"
WHEN grade_id = 2 THEN "二年级"
WHEN grade_id = 3 THEN "三年级"
WHEN grade_id = 4 THEN "四年级"
WHEN grade_id = 5 THEN "五年级"
WHEN grade_id = 6 THEN "六年级"
WHEN grade_id = 7 THEN "初一"
WHEN grade_id = 8 THEN "初二"
WHEN grade_id = 9 THEN "初三"
WHEN grade_id = 10 THEN "高一"
WHEN grade_id = 11 THEN "高二"
WHEN grade_id = 12 THEN "高三"
ELSE "" END as grade,
CASE subject_id
WHEN subject_id = 1 THEN "数学"
WHEN subject_id = 2 THEN "物理"
WHEN subject_id = 3 THEN "化学"
WHEN subject_id = 4 THEN "语文"
WHEN subject_id = 5 THEN "英语"
WHEN subject_id = 6 THEN "科学"
WHEN subject_id = 7 THEN "音乐"
WHEN subject_id = 8 THEN "绘画"
WHEN subject_id = 9 THEN "政治"
WHEN subject_id = 10 THEN "历史"
WHEN subject_id = 11 THEN "地理"
WHEN subject_id = 12 THEN "生物"
WHEN subject_id = 13 THEN "奥数"
ELSE "" END as subject,
CASE course_term_id
WHEN course_term_id = 1 THEN "春"
WHEN course_term_id = 2 THEN "暑"
WHEN course_term_id = 3 THEN "秋"
WHEN course_term_id = 4 THEN "寒"
ELSE "" END as season,
created_at, updated_at from sc_materials where material_id in (2025,317,2050);
和输出,其中红色标记的圆圈应带有值而不是空字符串。
当我使用as comment useELSE COALESCE(grade_id.))END
时,它显示
这是我在这些字段中使用的数据类型
grade_id int
subject_id int
course_term_id tinyint
好吧,我在你的箱子里发现了一些东西。很抱歉,一开始我没有注意到这一点 案例有两种形式:
CASE <expr1> WHEN <expr2> THEN <result> ...
CASE WHEN <expr3> THEN <result> ...
对于其他CASE表达式也是如此
但我也同意@tadman的评论——你应该只使用三个查找表 我建议您通过使用
ELSE COALESCE(grade_id,”)END
和类似的其他case表达式进行调试。您想知道其他案例的价值是多少。@BillKarwin谢谢您的建议,我将结果添加到我的问题中。这需要一个简单的查找表,您可以加入。当1时,它不应该是案例主题\u id…
?
CASE <expr1> WHEN <expr2> THEN <result> ...
CASE WHEN <expr3> THEN <result> ...
CASE grade_id
WHEN 1 THEN "一年级"
WHEN 2 THEN "二年级"
WHEN 3 THEN "三年级"
WHEN 4 THEN "四年级"
WHEN 5 THEN "五年级"
WHEN 6 THEN "六年级"
WHEN 7 THEN "初一"
WHEN 8 THEN "初二"
WHEN 9 THEN "初三"
WHEN 10 THEN "高一"
WHEN 11 THEN "高二"
WHEN 12 THEN "高三"
ELSE "" END as grade,