SQL - SELECT
- 如果一个数学表达式中包含一个空值,那么该数学表达式的结果为空值。
基本查询
select t1.col1 + 1 from t1; -- 可以直接在(数值)字段上使用运算符。
SELECT t1.col1 + 1 AS res FROM t1; -- 使用AS关键字设置别名,如果别名中有特殊字符,需要使用双引号。
select distinct col1 from t1; -- 使用distinct来消除重复的行。
验证查询语句
SELECT 1 FROM dual; -- Oracle 独有的 dual 表。
SELECT 1; -- PostgreSQL
SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS; -- hsqldb
SELECT 1 FROM sysibm.sysdummy1 -- DB2
SELECT 1 -- MySql
SELECT 1 -- Microsoft SQL Server
SELECT 1 -- ingres
SELECT 1 -- H2
values 1 -- derby
SELECT 1 FROM rdb$database -- Firebird
LIMIT 使用 case when 表达式
select
case
when age < 18 then 'A'
when age >= 18 and age < 25 then 'B'
when age >= 25 and age < 36 then 'C'
when age >= 36 and age < 50 then 'D'
when age >= 50 then 'E'
end area,
count(*) count
from
(select round((CURRENT_DATE - birthday)/365) as age from contact) as birthday
group by area;
拼接字段或者字符
SELECT country.c_name || country.e_name FROM public.country;
SELECT country.c_name || ' - 国家' FROM public.country;
SELECT concat(country.c_name, ' - 国家') FROM public.country;
select t1.col1 + 1 from t1; -- 可以直接在(数值)字段上使用运算符。
SELECT t1.col1 + 1 AS res FROM t1; -- 使用AS关键字设置别名,如果别名中有特殊字符,需要使用双引号。
select distinct col1 from t1; -- 使用distinct来消除重复的行。
SELECT 1 FROM dual; -- Oracle 独有的 dual 表。
SELECT 1; -- PostgreSQL
SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS; -- hsqldb
SELECT 1 FROM sysibm.sysdummy1 -- DB2
SELECT 1 -- MySql
SELECT 1 -- Microsoft SQL Server
SELECT 1 -- ingres
SELECT 1 -- H2
values 1 -- derby
SELECT 1 FROM rdb$database -- Firebird
select
case
when age < 18 then 'A'
when age >= 18 and age < 25 then 'B'
when age >= 25 and age < 36 then 'C'
when age >= 36 and age < 50 then 'D'
when age >= 50 then 'E'
end area,
count(*) count
from
(select round((CURRENT_DATE - birthday)/365) as age from contact) as birthday
group by area;
SELECT country.c_name || country.e_name FROM public.country;
SELECT country.c_name || ' - 国家' FROM public.country;
SELECT concat(country.c_name, ' - 国家') FROM public.country;