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可根据需要,加或不加
posted @ 2020-09-28 00:42  大盘鸡嘹咋咧  阅读(149)  评论(0编辑  收藏  举报