使用动态SQL,仓库并不一定只有例子中的1234,可能有5678。 我的想法是这是个行列转换的题,用case...when语句,但是仓库的值不确定,所以考虑变量设置SQL语句。 先查询表中的非重复仓库 子查询group by,通过select向字符串变量里循环添加case...when语句 外层再嵌套一个group by,最后拼接所有的变量sql字符串 使用预...
SELECTE_CODE,SUM(CASEWHENE_TYPE=0THENE_VALUEELSE0END)ASWATER_ENERGY,--水耗SUM(CASEWHENE_TYPE=1THENE_VALUEELSE0END)ASELE_ENERGY,--电耗SUM(CASEWHENE_TYPE=2THENE_VALUEELSE0END)ASHEAT_ENERGY--热耗FROMTHTF_ENERGY_TESTGROUPBYE_CODE 输出结果如下: 场景4: CASEWHEN中使用子查询 根据城市用电量...
where后条件或者部分条件移到了case when后面,那么sql的计算数据集就会变大,where条件后的全部数据都要参与case when的指标计算,这就会造成不满足条件的数据也会进行计算,如果有group by的情况,可能某一个分组的指标数据都是0 3、条件表达式放在where后面,这样可以提高性能,但是同时也限制了其他维度指标的计算;条件或者...
② case when可以写在分组group by后按新字段分组,注意case when用在group by后不可以使用字段别名,即到end关键字结束,无as new_colname。 ③ case when可以用在聚合函数中。比如统计每个学生考试通过的学科数,可写为: select id, name, count(distinct case when score>= 60 then subject end) as total_pa...
原书中使用Case和in方式的子查询实现的代码如下:SELECTcourse_name,CASEWHENcourse_idin(SELECTcourse_id...
sum(case when vehicleclass=1 or vehicleclass=11 then tollsum end) as car1toll, sum(case when vehicleclass=2 or vehicleclass=12 then trafficsum end) as car2count, sum(case when vehicleclass=2 or vehicleclass=12 then tollsum end) as car2toll, ...
SQL语句可以使用AS关键字为列设定别名,设定汉字别名时需要使用双引号(’’)括起来 在SELECT语句中可以使用DISTINCT...CASE 表达式 CASE WHEN THEN WHEN THEN WHEN...ELSE END SQL常用规则6 谓词就是返回值为真值的函数 通常指定关联子查询作为EXIST的参数 作为EXIST参数的子查询中经常会使用SELECT...
commit;3、在表2中插入数据 insert into test_case2 values(1,'aa');insert into test_case2 values(2,'bb');insert into test_case2 values(3,'cc');insert into test_case2 values(6,'ee');commit;4、两表关联,并编写case when的语句 select t.*,case when b.id is not null ...
一、简单CASE WHEN函数: 二、CASE WHEN条件表达式函数 三、常用场景 场景1:不同状态展示为不同的值 场景2:统计不同状态下的值 场景3:配合聚合函数做统计 场景4:CASE WHEN中使用子查询 场景5:经典行转列,结合max聚合函数 一、简单CASE WHEN函数: