In子句
编辑教程In子句
Oracle IN 运算符可以用来确定值是否与列表或子查询中的任何值相匹配,本文就将为大家带来 Oracle IN 运算符的具体用法。
Oracle IN语法:
确定表达式是否与值列表匹配的 Oracle IN 运算符的语法如下所示:
expression [NOT] IN (v1,v2,...)
并且表达式的语法与子查询匹配:
expression [NOT] IN (subquery)
参数
在上面语法中,这里将介绍每个参数含义:
expression | 该表达式(expression)是任何有效的表达式,它可以是要匹配的表的列。 |
---|---|
v1, v2, v3.. | IN 运算符后面是逗号分隔值列表,用于测试匹配。所有值必须与表达式具有相同的数据类型。 |
subquery | 子查询返回一列的结果集以测试匹配。该列还必须具有与表达式相同的数据类型。 |
返回值
如果表达式(expression)的值等于值列表中的任何值或由子查询返回的结果集,则 IN 运算符返回 true。 否则,它返回 false。
NOT 运算符否定 IN 运算符的结果。
Oracle IN实例
以下面的这两种表为例:
Oracle IN 示例
以下语句查找所有销售员 ID 为54,55和56所负责的订单:
SELECT
order_id,customer_id,status,salesman_id
FROM
orders
WHERE
salesman_id IN (54,55,56)
ORDER BY
order_id;
执行以上代码可以得到以下结果:
如上图中所示,查询结果集返回了 salesman_id 列中值为54,55或56的所有订单。同样,以下示例将检索状态(status)列的值为"Pending"或"Canceled"的销售订单信息:
SELECT
order_id, customer_id, status, salesman_id
FROM
orders
WHERE
status IN('Pending','Canceled')
ORDER BY
order_id;
执行上面查询语句返回状态(status)列的值为"Pending"或"Canceled"的销售订单信息,如下所示:
Oracle NOT IN示例
这个示例演示如何查找状态(status)不是"Shipped"或"Canceled"的订单:
SELECT
order_id, customer_id, status, salesman_id
FROM
orders
WHERE
status NOT IN( 'Shipped', 'Canceled')
ORDER BY
order_id;
执行上面查询语句返回状态(status)列的值不是"Shipped"或"Canceled"的销售订单信息,如下所示:
Oracle IN 子查询示例
以下示例返回负责订单状态为取消(Canceled)的销售员的ID,名字和姓氏,参考以下查询语句
SELECT employee_id, first_name, last_name
FROM employees
WHERE
employee_id IN(
SELECT
DISTINCT salesman_id
FROM
orders
WHERE
status = 'Canceled'
)
ORDER BY first_Name;
执行上面查询语句,得到以下结果:
在这个例子中,子查询首先执行并返回一个销售员ID列表:
SELECT
DISTINCT salesman_id
FROM
orders
WHERE
status = 'Canceled'
执行上面查询语句,得到以下结果
这些销售人员id用于外部查询,查找所有员工的ID与销售员ID列表中的任何id相同。
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟