oracle 同表,字段A取前2位数,如果等于56,赋予字段B值01,如果等于36赋予字段B值02 这个语句怎么写?忘记补充了micro0369的语句可以用,但我那一列有数据,怎么修改过来?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 02:11:48
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的语句可以用,但我那一列有数据,怎么修改过来?

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 未能与任何一序偶匹配成功时,函数返回的默认值

收起

oracle 同表,字段A取前2位数,如果等于56,赋予字段B值01,如果等于36赋予字段B值02 这个语句怎么写?忘记补充了micro0369的语句可以用,但我那一列有数据,怎么修改过来? 用oracle的话,查询语句该怎么写?表中相关的字段有,beginDate,endDate,interest_rate三个,起始时间至结束时间这一时间段内,对应一个值,前两个字段是char(8)型的,对应日期的八个数字'yyyymmdd' 如:id begin oracle 语句取时间(times)字段 大于等于当前系统时间的语句怎么写 ORACLE数据库:表A 部门表 :字段:dept_id(部门ID) pid(上级单位ID) dept_name(部门名称) dept_typeORACLE数据库:表A 部门表 :字段:dept_id(部门ID) pid(上级单位ID) dept_name(部门名称) dept_type(部 如何在ARCGIS中创建float字段类型?且可以设置字段长度,小数位数? oracle 中视图dba_segments 每个字段是什么意思 关于oracle length()函数的问题是在oracle里出现的,取数据库中一个字符类型列的长度,是个类别字段用的是char(10) bigcata 如 大类都是两位数 01,02等 类别不多 小类就是0101,0102,0201,0202本来我想 select 求oracle语句.如a表里面有这两个字段,一个是create time一个end time 我现在要查询create time加六个月加上六个月小于end time的所有数据,新人 ,急 oracle查询一个表,select * from a 所有的字段都是浮点型,想保留3个小数,怎么写语句?类似select round(*,3) from a,还是怎么写? ORACLE的 substr(flag,2,1) = 'B' 是什么意思呢是不是flag字段的第二位为B 的意思呢 oracle数据库有A、B两列,B列字段中包含A列字段,现在想把B列字段中的A字段删除掉,该怎么写语句?操作失误所以把A列字段加到B列了,现在想还原B列! oracle 里(+)接在一个字段后面 下列对表性质的叙述错误的是( )下列对表性质的叙述错误的是( )A、表的每一列代表一个数据项B、在同一张表内,表的字段名允许重复C、表列成为字段D、表的每一个字段都有一个字段名字,称 vfp中不用命令怎么增加字段啊.如(1)为该表增加一个字段“基本工资”,数值型,宽度为7,小数位2位; Oracle 怎样实现获取类似值(A,B,...,Z,AA,AB,.,AZ,BA,BB,...BZ,.客户要求某一字段的取值为这种形式:A,B,...,Z,AA,AB,.,AZ,BA,BB,...BZ,.,要怎么实现比较好?需要用到哪些函数?还望大神指导一番,现有系统中, 向oracle中的clob型字段中插入数据时出错:java.sql.SQLException:内部错误:unable to construct a datum from the specified input oracle统计一个表中的一个字段里面的值的个数比如表中的name字段,我要统计出里面有3个值,输出结果为3 sql语句如何写?有一个表table 里面有A,B,C,D四个字段假设表里面有10条数据,字段A为自增的id,B为标题,C为短标题,D为空字段.其中前5条数据(条件已知)标题为空,短标题有数据,后5条短标题为空,