网站建设7个基本流程步骤有哪些,想加盟一个装修公司,丽水手机网站建设,轻松学做网站问题描述 给出下面的表#xff0c;名为salary。 idnamesexsalary1Am25002Bf15003Cm55004Df500要求执行一个UPDATE语句#xff0c;将表转换成下面的样子。 idnamesexsalary1Af25002Bm15003Cf55004Dm500即m与f交换位置。 问题解决 下面我使用SQL中的case when来解决问题。… 问题描述 给出下面的表名为salary。 idnamesexsalary1Am25002Bf15003Cm55004Df500要求执行一个UPDATE语句将表转换成下面的样子。 idnamesexsalary1Af25002Bm15003Cf55004Dm500即m与f交换位置。 问题解决 下面我使用SQL中的case when来解决问题。 #简单case函数写法
update salary
set sex (case sex when m then felse mend) #case搜索函数写法
update salary
set sex (case when sex m then felse mend) 这两种方式可以实现相同的功能。简单case函数的写法相对比较简洁但是和case搜索函数相比功能方面会有些限制比如写判定式。 进入讨论区后发现很多大神还有其它优秀的解决方案。例如 UPDATE salary
SET sex IF(sexm,f,m) 当表中的某个字段只有两种情况时可以使用上面的解法。 还有一种解法真是震惊到我了那就是采用异或的思路。异或有两条规则是 两个相同的数异或为00与任何数异或还是原数所以就有了下面的解法 update salary
set sex CHAR(ASCII(f) ^ ASCII(m) ^ ASCII(sex)) 如果sex为‘m’三个数做异或后结果结果就为‘f’这个解法真是相当巧妙。 可以看到这四种方式的运行速度快慢使用异或的速度是最快的IF函数的方式速度也还行不过它只适用于字段只有两种可能的情况。而case when函数是我们最容易想到的但是其运行速度就稍微的差了点。 转载于:https://www.cnblogs.com/KKSJS/p/9622819.html