1、使用三元表达式

如果姓名=‘小小’那么查找年龄大于18岁的,如果不等于‘张三’就找小于等于18岁的

select * from students where (name != ‘小小’) ? students.age<=18 : students.age>18;

2、decode函数

DECODE的语法:

DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

表示如果value等于if1时,DECODE函数的结果返回then1,…,如果不等于任何一个if值,则返回else。

3、case when

case when a='1'then 'xxxx'
     when a='2' then 'ssss'
  'zzzzz'
end as

1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名

1、使用三元表达式如果姓名=‘小小’那么查找年龄大于18岁的,如果不等于‘张三’就找小于等于18岁的select * from students where (name != ‘小小’) ? students.age&lt;=18 : students.age&gt;18;2、decode函数DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else)表示如果value等于if1时,DECODE函数的结果返回then1,…,如果
1. 查询语句1.1. selectselect 用于从数据看查询数据。语法select field1,filed2,.. . from tablename [where condition]-- 查询所有员工的名字和雇员号 select empno,ename from emp; -- 查询所有员工的雇员号、姓名、岗位 select empno,ename,job from emp; --...
select valueA,valueB into tableB from tableA; 上面这句语句的意思是将tableA表的valueA和valueB字段的值和结构添加到tableB,tableB表需不存在。 在Oracleselect into的等价用法 create table tableB select valueA,valueB from tableA; 我估计有点 SQL 基础的人都会写 INSERT 语句。下面是 SQL 标准写法。 INSERT INTO employees (employee_id, name) VALUES (1, 'Zhangsan'); INSERT INTO employees VALUES (1, 'Shangbo'); 其实, Oracle 还支持下面的写法,作用和上面的语句完全相同。 INSERT INTO (SELECT employee_id, name FROM employees) VALUES (2, 'Lisi'); 此外,同其他数据
在SQL语句优化过程,我们经常会用到hint,现总结一下在SQL优化过程常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN
1.在Oracle实现SELECT TOP N    由于ORACLE不支持SELECT TOP语句,所以在ORACLE经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。  简单地说,实现方法如下所示: SELECT 列名1...列名n FROM (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n) WHERE ROWNUM <= N(抽出记录数) ORDER BY ROWNUM ASC    下面举个例子简单说明一下。  顾客表customer(id,name)有如下数据:   ID NAME
select xxx,case when T.ELUDEMONEYTYPEITEM=901 then cast('901' as varchar2(20)) else cast((SELECT COUNT (*) JC_EVADETOLL_RECORD rd WHERE rd.JCFUNID = T .RE
b:='asdf'; if length(a)&gt;length(b) then dbms_output.put_line('字符串"'||a||'"的长度比字符串"'||b||'"的长度大');
1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN...