注意:1)Oracle中的字符串是严格区分大小写的,日期和字符只能在单引号中出现;
2)把列与列,列与字符连接在一起用 ‘||’符号;
3)列的别名,紧跟列名,也可以在列名和别名之间加入关键字‘AS’,以便在别名中包含空格或特殊的字符并区分大小写,使用双引号。
例子:
SELECT
last_name
||
' is a '
||
job_id
AS
"Employee Details"
FROM
employees
where
first_name
like
'%s_';
通用函数
空值是无效的,未指定的,未知的或不可预知的值,空值不是空格或者0 ,包含空值的数学表达式的值都为空值。
这些函数适用于任何数据类型,同时也适用于空值:
NVL (expr1, expr2)
NVL2 (expr1, expr2, expr3)
NULLIF (expr1, expr2)
COALESCE (expr1, expr2, 。
。。, exprn)
(1)NVL (expr1, expr2) ->expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
(2)NVL2 (expr1, expr2, expr3) ->expr1不为NULL,返回expr2;为NULL,返回expr3。
expr2和expr3类型不同的话,expr3会转换为expr2的类型
(3)NULLIF (expr1, expr2) ->相等返回NULL,不等返回expr1
(4)COALESCE(expr1, expr2, 。。。, exprn) ->列表中第一个非空的表达式是函数的返回值,如果所有的表达式都是空值,最终将返回一个空值。
条件表达式在SQL语句中使用IF-THEN-ELSE 逻辑。可以使用两种方法:–CASE表达式
CASE
expr
WHEN
comparison_expr1
THEN
return_expr1
[WHEN
comparison_expr2
THEN
return_expr2
WHEN
comparison_exprn
THEN
return_exprn
ELSE
else_expr]
END
–DECODE函数
DECODE ( col | expression,
search1,
result1
[, search2, result2,。
。。,]
[, default] )
分组函数
分组函数作用于一组数据,并对一组数据返回一个值。
组函数语法:
SELECT [column,] group_function(column), 。。。
FROM table
[WHERE condition]
[GROUP BY column]
[ORDER BY column];
注意:在SELECT列表中所有未包含在组函数中的列都应该包含在GROUP BY子句中;
(所用包含于SELECT列表中,而未包含于组函数中的列都必须包含于GROUPBY子句中)
但包含在GROUP BY 子句中的列不必包含在SELECT列表中;
且可以在在GROUP BY子句中包含多个列;
不能在WHERE子句中使用组函数;但可以在HAVING子句中使用组函数。
使用HAVING过滤分组:
1。行已经被分组;
2。使用了组函数;
3。
满足HAVING子句中条件的分组将被显示;
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];。
全部