扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在oracle中,我们可以用case when 代替if
在滴道等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作按需规划网站,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,外贸网站制作,滴道网站建设费用合理。
case when length(id)7 then '成功' else '失败' end name (没办法把整个语句发上来,一发就说网络异常)
如果另建新表(这张表需要确实存在),那么就create table table_name后面加上上面的语句就可以了。
如果你的name字段已经存在,也就是说你需要在那么中加上成功个失败的字样,那么就需要稍微修改一下
case when length(id)7 then '成功' else '失败' end name
改为
case when length(id)7 then name||'成功' else name||'失败' end name
具体的要根据实际需求酌情修改
需要用case when语句来解决。
1、创建数据表插入数据:
create table test
(id int,
name varchar2(20),
sal int);
insert into test values (1,'百度知道团长',4600);
insert into test values (2,'du小智',1700);
insert into test values (3,'du小佑',2500);
insert into test values (4,'du小短',1900);
insert into test values (5,'du小小动',4500);
commit;
此时表中数据如下:
2、执行语句,如果sal大于2000则减去1500,否则不做任何操作。
select id,name,case when sal2000 then sal-1500 else sal end as sal from test;
3、执行结果:
是存储过程里面的 IF/ELSE ? 还是简单的 DECODE ?
SQL DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 100;
5
6 IF testvalue 100 THEN
7 dbms_output.put_line( '100+' );
8 ELSIF testvalue = 100 THEN
9 dbms_output.put_line( '100' );
10 ELSE
11 dbms_output.put_line( '100-' );
12 END IF;
13
14 END;
15 /
100
PL/SQL procedure successfully completed.
SQL SELECT
2 DECODE(GROUPING(sale_item), 1, 'ALL', sale_item) AS iten,
3 SUM(sale_money) AS money
4 FROM
5 sale_report
6 GROUP BY
7 ROLLUP(sale_item);
ITEN MONEY
------ ----------
A 733285
B 2382
C 5738
ALL 741405
在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来,并不是一件难事。常用的方法是:Select to_number(to_char(sysdate,'yyyy')) from dual,而实际上,oracle本身有更好的方法,那就是使用Extract函数,使用方法是:Select Extract(year from sysdate) from dual,这种方法省掉了类型转换,看上去更加简洁。相应的,要取得月份或日,可以用select extract (month from sysdate) from dual和select extract (day from sysdate) from dual。
此方法获得的结果,是数值型的,你可以设置一个方法测试一下。
1 不用转换,直接相减,看正负。结果还可以表明两个日期的差距,正的说明前者大,负的是后者大。
2 做判断是大于还是小于。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流