--sql sever
select cast(current_timestamp as date) as cur_date;
--oracle
select current_date from dual;
--db2
select current date from sysibm.sysdummy1
select extract(year from current_timestamp);
--year 、month、 day 、 hour 、 minute 、 second
--sql server
datepart(year,current_timestamp);
--oracle
extract(year from current_timestamp) from dual;
--db2
extract(year from current timestamp) from sysibm.sysdummy1;
--sql server/postgresql
cast('100' as integer)
--mysql
cast('100' as signed integer)
--oracle
cast('100' as integer) from dual
--db2
cast('100' as integer) from sysibm.sysdummy1
--前方一致
select col from t_able where 《列名》 like 'str%';
--中間一致
select col from t_able where 《列名》 like '%tr%';
--後方一致
select col from t_able where 《列名》 like '%ing';
select number
from table
where number between 100 and 10000;
--or
select number
from table
where number=1
or number=2
or number=3;
--in
select number
from table
where number in (1,2,3);
--使用子查詢作為in的引數-----in、not in
select t_col
from table
where t_id in ( -----not in
select t_id
from table
where t_id > 1
);
select t_col
from table
where t_id exist (
select t_id
from table
where t_id > 1
);--通常以指定關聯子查詢作為exist的引數
--exist只關心記錄是否存在,不關心返回列,具體列的條件以子查詢的判斷為準
--exist引數的子查詢中經常使用select *
--not exist即不存在
case when 《求值表示式》 then 《表示式》
when 《求值表示式》 then 《表示式》..
.else 《表示式》
end--《求職表示式》:《列=值》 ———— true/flase
--示例
select t_name,
case
when tcol1 = '1' then tcol1+10
when tcol1 = '2' then tcol1+20
when tcol1 = '3' then tcol1+30
else null
end
as result
from table;
--【注】
--else子句可以省略,但是不要省略
--end不能省略
--case可看作自帶條件查詢的表示式
--實現行列轉換
--oracle
decode(t_col,
'1','100',
'2','200',
'3','300',
null)
--mysql
if ( tcil = '111',tcol+10,null) is null and
SQL語句case函式
case函式被習慣性的稱為流程控制函式 其主要應用有以下兩種 列舉這個字段 或者是該字段的函式 所有可能的值 形式為case when then when then else end例 select day when 1 then 星期一 when 2 then 星期二 when 3 then 星期...
SQL高階查詢 case表示式
case表示式可以在sql中實現if then else型的邏輯,oracle database 9i及以上版本支援case表示式,case工作方式與decode 類似 有兩種型別的case表示式 1.簡單case表示式,使用表示式確定返回值 case search expression when ...
decode 和SQL語法case表示式
方法一 使用sql99標準通用語法中的case表示式,將職位是分析員的,工資 1000 職位是經理的,工資 800 職位是其它的,工資 400 select ename 姓名 job 職位 sal 原工資 case job when analyst then sal 1000 when manage...