oracle 同表,字段A取前2位数,如果等于56,赋予字段B值01,如果等于36赋予字段B值02 这个语句怎么写?忘记补充了micro0369的语句可以用,但我那一列有数据,怎么修改过来?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 10:05:38
oracle 同表,字段A取前2位数,如果等于56,赋予字段B值01,如果等于36赋予字段B值02 这个语句怎么写?忘记补充了micro0369的语句可以用,但我那一列有数据,怎么修改过来?
oracle 同表,字段A取前2位数,如果等于56,赋予字段B值01,如果等于36赋予字段B值02 这个语句怎么写?
忘记补充了
micro0369的语句可以用,但我那一列有数据,怎么修改过来?
oracle 同表,字段A取前2位数,如果等于56,赋予字段B值01,如果等于36赋予字段B值02 这个语句怎么写?忘记补充了micro0369的语句可以用,但我那一列有数据,怎么修改过来?
update 表 set
b = case when substr(a,1,2) = '56' then '01' when substr(a,1,2) = '36' then '02' end
update table_name set b=decode(substr(a,1,2)='56',01,substr(a,1,2)='36',02,b)
update 表 set b=decode(substr(a,1,2),56,'01',36,'02‘,‘’);
如果双不等于56,又不等 于36时,又不想改B原来的值,语句改为
对于你补充的问题,如果B列原来就有数据,会自动根据条件更新好的。
update 表 set b=decode(substr(a,1,2),56,'01',36,'02‘,b);
这个就是d...
全部展开
update 表 set b=decode(substr(a,1,2),56,'01',36,'02‘,‘’);
如果双不等于56,又不等 于36时,又不想改B原来的值,语句改为
对于你补充的问题,如果B列原来就有数据,会自动根据条件更新好的。
update 表 set b=decode(substr(a,1,2),56,'01',36,'02‘,b);
这个就是decode函数的用法。
参见以下解释:
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值.
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果
value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result 是一组成序偶的结果值
default_result 未能与任何一序偶匹配成功时,函数返回的默认值
收起