case...when...then....(else...)....end的使用小案例
如何将数据表中的两列进行90°翻转,即一列变成字段名,另一列变成对应值,如下图:
反转之后变成:
实现语句:
SELECT
MAX(CASE param_name WHEN 'haha1' THEN param_value END) haha1,
MAX(CASE param_name WHEN 'haha2' THEN param_value END) haha2,
MAX(CASE param_name WHEN 'haha3' THEN param_value END) haha3
FROM test
如何根据一列中不同的值更新其另一列对应的值,如图,想根据param_name列去更新param_value列的值
更新之后:
实现语句:
UPDATE test SET
param_value = (CASE param_name WHEN 'haha1' THEN '111'
WHEN 'haha2' THEN '222' WHEN 'haha3' THEN '333' END ) WHERE id IN ('1','2','3') # where可根据需要,加或不加