sql 扫描数组
2023-09-14 09:09:30 时间
扫描数组
如需检查数组是否包含特定值,请结合使用 IN 运算符和 UNNEST。如需检查数组是否包含与某条件匹配的值,请结合使用 EXISTS 函数和 UNNEST。
扫描特定值
如需扫描数组中的特定值,请将 IN 运算符与 UNNEST 结合使用。
示例
以下示例在数组中包含数字 2 时返回 true。
SELECT 2 IN UNNEST([0, 1, 1, 2, 3, 5]) AS contains_value;
+----------------+
| contains_value |
+----------------+
| true |
+----------------+
对于一个表,要返回数组列中包含特定值的行,请使用 WHERE 子句过滤 IN UNNEST 的结果。
示例
以下示例返回数组列中包含值 2 的行的 id 值。
WITH sequences AS
(SELECT 1 AS id, [0, 1, 1, 2, 3, 5] AS some_numbers
UNION ALL SELECT 2 AS id, [2, 4, 8, 16, 32] AS some_numbers
UNION ALL SELECT 3 AS id, [5, 10] AS some_numbers)
SELECT id AS matching_rows
FROM sequences
WHERE 2 IN UNNEST(sequences.some_numbers)
ORDER BY matching_rows;
+---------------+
| matching_rows |
+---------------+
| 1 |
| 2 |
+---------------+
扫描满足条件的值
如需扫描数组以查找与条件相匹配的值,请使用 UNNEST 返回包含数组中元素的表,使用 WHERE 过滤子查询中的结果表,然后使用 EXISTS 检查过滤后的表是否包含任何行。
示例
以下示例返回包含大于 5 的值的数组列中行的 id 值。
WITH sequences AS
(SELECT 1 AS id, [0, 1, 1, 2, 3, 5] AS some_numbers
UNION ALL SELECT 2 AS id, [2, 4, 8, 16, 32] AS some_numbers
UNION ALL SELECT 3 AS id, [5, 10] AS some_numbers)
SELECT id AS matching_rows FROM sequences
WHERE EXISTS (SELECT *
FROM UNNEST(some_numbers) AS x
WHERE x > 5);
+---------------+
| matching_rows |
+---------------+
| 2 |
| 3 |
+---------------+
相关文章
- Data Access 之 MyBatis(三) - SQL Mapping XML(Part A)
- 2022-12-13:游戏玩法分析 I。写一条 SQL 查询语句获取每位玩家 第一次登陆平台的日期。 +-----------+-------------+ |
- SQL的常用函数-聚合函数
- SQL开发知识:MySQL高级进阶sql语句总结大全
- hibernate+java+sql 之间数据类型转换关系详解编程语言
- SQL与MySQL的异同比较(sql与mysql的区别)
- Oracle SQL语句优化:提升性能的关键(oracle的sql优化)
- Oracle删除表: 使用SQL语句(oracle删除表sql)
- MongoDB导出SQL: 一种简单快捷的方式(mongodb导出sql)
- 学习Oracle的SQL语法,掌握精妙技巧(oracle的sql语法)
- 文件MySQL导入SQL文件教程(mysql怎么导入sql)
- Oracle数据库抓取过程中的SQL技巧(oracle抓取sql)
- 提升数据库效率:MySQL SQL优化技巧(mysqlsql优化)
- 如何在Linux上导出SQL文件(linux导出sql文件)
- 掌握好SQL Server赋权,打开数据库之门(sqlserver 赋权)
- 悲观锁在SQL Server中的应用(sqlserver悲观锁)
- 量索引性能?使用SQL Server监测索引性能的有效方法(sqlserver如何度)
- 深入理解Oracle SQL注释的用法和技巧(oraclesql注释)
- ms sql服务器的管理策略>>管理MS SQL服务器:重定向策略实施(mssql
- 语句MS SQL:每条SQL语句都有其特殊意义(mssql 每条sql)
- 用Oracle掌握常用SQL语句(oracle常用sql语句)
- 数据MS SQL查询近6个月数据总结报告(mssql 查询 6个月)
- Oracle也用SQL有没有别的区别(oracle也是sql吗)
- Oracle中SQL参数优化实践经验(oracle中sql参数)
- 一个SQL管理员的web接口
- SQL2005查询表结构的SQL语句使用分享