decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 1)比较大小 select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 2)select SUM(decode(性别,男,1,0)),SUM(decode(性别,女,1,0)) from 表 3)order by对字符列进行特定的排序 例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , ' 外语',3)desc(从大到小) asc(从小到大)
SELECT * FROM ( SELECT * FROM TABLE WHERE id = '123' ORDER BY happenTime DESC ) WHERE ROUNUM = 11)基本
select name, (case when score < 60 then '不及格' when score >=60 then '及格' when score is null then '缺考' else '异常' end)AS "remark" from table then 和 else 数据类型要一致,注意是空为 is null2)布尔类型判断
CASE WHEN condition THEN result [WHEN...THEN...] ELSE result END condition是一个返回布尔类型的表达式, 如果表达式返回true,则整个函数返回相应result的值, 如果表达式皆为false,则返回ElSE后result的值, 如果省略了ELSE子句,则返回NULL。3)求和
select sum(case when score >= 60 then 1 else 0 end) as “有加一”, sum(case when score < 60 and sex = '女' then 1 else 0 end) as "可以在when中加and" from table4)行转列,并配合聚合函数做统计
E_CODEE_VALUEE_TYPE北京28.500北京23.511北京28.122北京12.300北京15.461上海18.880上海16.661上海19.990上海10.050 SELECT E_CODE, SUM(CASE WHEN E_TYPE = 0 THEN E_VALUE ELSE 0 END) AS WATER_ENERGY,--水耗 SUM(CASE WHEN E_TYPE = 1 THEN E_VALUE ELSE 0 END) AS ELE_ENERGY,--电耗 SUM(CASE WHEN E_TYPE = 2 THEN E_VALUE ELSE 0 END) AS HEAT_ENERGY--热耗 FROM THTF_ENERGY_TEST GROUP BY E_CODE5) case when 中使子查询
MIN 上面为准 MAX 下面为准 group by 为删除重复数据的条件
1.为规范SQL语句加别名使用AS,需要注意的是别名不加“” 所得字段值为全部大写形式。 2.left join table t on t.id = ‘123’