Sql进阶-postgres-like、similar to
模糊查询与多条件模糊查询
- 模糊查询
- SIMILAR TO———基本使用
- SIMILAR TO———进阶
模糊查询
源数据如图所示,工厂有A-Z共计26类考核指标,现领导需要了解到A-D类指标每样产品记录具体情况。
我们看到源表中没有具体的类别属性,只是通过指标名称进行区分。
--查询A类指标数
select * from a_sm_gysfqxyqxsxfplsze where zbmc like '指标A%' id ser_num qbn qby zbmc agjfkkjzyljjssd_by agjfkkjzyljjssd_1_by rksj approve_time
f305fd30-e47f-11eb-8e76-9bf3f680fffe 75405 2021 2 1 指标A-1-0015 45.7 32.7 2021-07-14 16:47:34 2021-07-14 16:48:30
8258580c-e480-11eb-a913-36cef680fffe 76003 2021 4 1 指标A-1-0016 -6.0 29.6 2021-07-14 16:51:47 2021-07-14 16:52:38
3a8ab8da-e480-11eb-ad89-35cdf680fffe 75803 2021 3 1 指标A-1-0017 28.2 48.1 2021-07-14 16:50:42 2021-07-14 16:51:25
6aba403c-f017-11eb-b259-c0e0f680fffe 85505 2021 6 1 指标A-1-0011 -60.2 -1.5 2021-07-29 10:03:21 2021-07-29 10:51:11
827d73d0-e480-11eb-a915-36cef680fffe 76005 2021 4 1 指标A-1-0012 20.2 28.5 2021-07-14 16:51:47 2021-07-14 16:52:38
3a938db6-e480-11eb-ad8b-35cdf680fffe 75805 2021 3 1 指标A-1-0013 30.3 31.6 2021-07-14 16:50:42 2021-07-14 16:51:25
c28dbba4-dd34-11eb-aa3a-b7d7f680fffe 47205 2021 5 1 指标A-1-0014 -47.2 13.4 2021-06-22 17:35:07 2021-06-22 17:35:44
--查询A-D类指标
select * from a_sm_gysfqxyqxsxfplsze where zbmc like '指标A%' or zbmc like '指标B%' or zbmc like '指标c%' or zbmc like '指标D%'id ser_num qbn qby zbmc agjfkkjzyljjssd_by agjfkkjzyljjssd_1_by rksj approve_time
c237b3bc-dd34-11eb-aa38-b7d7f680fffe 47203 2021 5 指标B-1-0011 -30.5 12.6 2021-06-22 17:35:07 2021-06-22 17:35:44
3aba0d9c-e480-11eb-ad90-35cdf680fffe 75810 2021 3 指标B-1-0014 20.3 31.8 2021-07-14 16:50:42 2021-07-14 16:51:25
c2c6bf58-dd34-11eb-aa3f-b7d7f680fffe 47210 2021 5 指标D-1-0011 -9.1 18.0 2021-06-22 17:35:07 2021-06-22 17:35:44
f305fd30-e47f-11eb-8e76-9bf3f680fffe 75405 2021 2 指标A-1-0015 45.7 32.7 2021-07-14 16:47:34 2021-07-14 16:48:30
8258580c-e480-11eb-a913-36cef680fffe 76003 2021 4 指标A-1-0016 -6.0 29.6 2021-07-14 16:51:47 2021-07-14 16:52:38
3a8ab8da-e480-11eb-ad89-35cdf680fffe 75803 2021 3 指标A-1-0017 28.2 48.1 2021-07-14 16:50:42 2021-07-14 16:51:25
6a2ece3a-f017-11eb-b257-c0e0f680fffe 85503 2021 6 指标B-1-0012 -13.9 6.9 2021-07-29 10:03:21 2021-07-29 10:51:11
f2fd2886-e47f-11eb-8e74-9bf3f680fffe 75403 2021 2 指标B-1-0013 238.5 60.4 2021-07-14 16:47:34 2021-07-14 16:48:30
6aba403c-f017-11eb-b259-c0e0f680fffe 85505 2021 6 指标A-1-0011 -60.2 -1.5 2021-07-29 10:03:21 2021-07-29 10:51:11
827d73d0-e480-11eb-a915-36cef680fffe 76005 2021 4 指标A-1-0012 20.2 28.5 2021-07-14 16:51:47 2021-07-14 16:52:38
3a938db6-e480-11eb-ad8b-35cdf680fffe 75805 2021 3 指标A-1-0013 30.3 31.6 2021-07-14 16:50:42 2021-07-14 16:51:25
c28dbba4-dd34-11eb-aa3a-b7d7f680fffe 47205 2021 5 指标A-1-0014 -47.2 13.4 2021-06-22 17:35:07 2021-06-22 17:35:44
SIMILAR TO———基本使用
多条件筛选时使用or方法拼接会导致sql格外臃肿,极为不便。下面引入一种简介方案
语法:SIMILAR TO ‘(指标A|指标B|指标C| ***)’
select * from ioc_fbsj.a_sm_gysfqxyqxsxfplsze where zbmc SIMILAR TO '(指标A|指标B|指标C|指标D)%';id ser_num qbn qby zbmc agjfkkjzyljjssd_by agjfkkjzyljjssd_1_by rksj approve_time
c237b3bc-dd34-11eb-aa38-b7d7f680fffe 47203 2021 5 指标B-1-0011 -30.5 12.6 2021-06-22 17:35:07 2021-06-22 17:35:44
3aba0d9c-e480-11eb-ad90-35cdf680fffe 75810 2021 3 指标B-1-0014 20.3 31.8 2021-07-14 16:50:42 2021-07-14 16:51:25
c2c6bf58-dd34-11eb-aa3f-b7d7f680fffe 47210 2021 5 指标D-1-0011 -9.1 18.0 2021-06-22 17:35:07 2021-06-22 17:35:44
f305fd30-e47f-11eb-8e76-9bf3f680fffe 75405 2021 2 指标A-1-0015 45.7 32.7 2021-07-14 16:47:34 2021-07-14 16:48:30
8258580c-e480-11eb-a913-36cef680fffe 76003 2021 4 指标A-1-0016 -6.0 29.6 2021-07-14 16:51:47 2021-07-14 16:52:38
3a8ab8da-e480-11eb-ad89-35cdf680fffe 75803 2021 3 指标A-1-0017 28.2 48.1 2021-07-14 16:50:42 2021-07-14 16:51:25
6a2ece3a-f017-11eb-b257-c0e0f680fffe 85503 2021 6 指标B-1-0012 -13.9 6.9 2021-07-29 10:03:21 2021-07-29 10:51:11
f2fd2886-e47f-11eb-8e74-9bf3f680fffe 75403 2021 2 指标B-1-0013 238.5 60.4 2021-07-14 16:47:34 2021-07-14 16:48:30
6aba403c-f017-11eb-b259-c0e0f680fffe 85505 2021 6 指标A-1-0011 -60.2 -1.5 2021-07-29 10:03:21 2021-07-29 10:51:11
827d73d0-e480-11eb-a915-36cef680fffe 76005 2021 4 指标A-1-0012 20.2 28.5 2021-07-14 16:51:47 2021-07-14 16:52:38
3a938db6-e480-11eb-ad8b-35cdf680fffe 75805 2021 3 指标A-1-0013 30.3 31.6 2021-07-14 16:50:42 2021-07-14 16:51:25
c28dbba4-dd34-11eb-aa3a-b7d7f680fffe 47205 2021 5 指标A-1-0014 -47.2 13.4 2021-06-22 17:35:07 2021-06-22 17:35:44
我们可以看到使用SIMILAR TO 查询的结果和凭借多个or语句是一样的结果,语法更加简洁
SIMILAR TO———进阶
看到这里小伙伴们或许会问了,我在实际业务中类型往往是不可控的,是一个变化的值,而非一个固定的内容,如此情形,如之奈何?
别急,有问题就会有答案。
我们先看看语法中是如何定义SIMILAR TO的值,这里引用同行的一篇文章:
https://blog.csdn.net/hu330459076/article/details/6993058
针对类型不可控或动态的情况,那我们也动态的生成一个对于的表达式即可:
实例如下:
select '('||array_to_string(array(select substring(zbmc,1,3) as type from a_sm_gysfqxyqxsxfplsze group by type),'|')||')%' as strs输出结果如下:
strs
(指标F|指标M|指标A|指标K|指标J|指标B|指标D|指标C)%
下面我们将表达式结合查询语句一起使用即可:
select * from a_sm_gysfqxyqxsxfplsze where zbmc SIMILAR TO (select '('||array_to_string(array(select substring(zbmc,1,3) as type from a_sm_gysfqxyqxsxfplsze group by type),'|')||')%' as strs);输出结果如下:
id ser_num qbn qby zbmc agjfkkjzyljjssd_by agjfkkjzyljjssd_1_by rksj approve_timec237b3bc-dd34-11eb-aa38-b7d7f680fffe 47203 2021 5 指标B-1-0011 -30.5 12.6 2021-06-22 17:35:07 2021-06-22 17:35:44
3aba0d9c-e480-11eb-ad90-35cdf680fffe 75810 2021 3 指标B-1-0014 20.3 31.8 2021-07-14 16:50:42 2021-07-14 16:51:25
f377873e-e47f-11eb-8e7b-9bf3f680fffe 75410 2021 2 指标C-1-0015 44.7 39.9 2021-07-14 16:47:34 2021-07-14 16:48:30
83277876-e480-11eb-a91a-36cef680fffe 76010 2021 4 指标C-1-0016 13.3 26.3 2021-07-14 16:51:47 2021-07-14 16:52:38
6b7fa412-f017-11eb-b25e-c0e0f680fffe 85510 2021 6 指标C-1-0017 -8.8 13.4 2021-07-29 10:03:21 2021-07-29 10:51:11
c2c6bf58-dd34-11eb-aa3f-b7d7f680fffe 47210 2021 5 指标D-1-0011 -9.1 18.0 2021-06-22 17:35:07 2021-06-22 17:35:44
f30c9668-e47f-11eb-8e78-9bf3f680fffe 75407 2021 2 指标K-1-0011 63.9 23.9 2021-07-14 16:47:34 2021-07-14 16:48:30
83c80372-e480-11eb-a920-36cef680fffe 76016 2021 4 指标M-1-0012 69.2 80.8 2021-07-14 16:51:47 2021-07-14 16:52:38
f305fd30-e47f-11eb-8e76-9bf3f680fffe 75405 2021 2 指标A-1-0015 45.7 32.7 2021-07-14 16:47:34 2021-07-14 16:48:30
8258580c-e480-11eb-a913-36cef680fffe 76003 2021 4 指标A-1-0016 -6.0 29.6 2021-07-14 16:51:47 2021-07-14 16:52:38
3a8ab8da-e480-11eb-ad89-35cdf680fffe 75803 2021 3 指标A-1-0017 28.2 48.1 2021-07-14 16:50:42 2021-07-14 16:51:25
6a2ece3a-f017-11eb-b257-c0e0f680fffe 85503 2021 6 指标B-1-0012 -13.9 6.9 2021-07-29 10:03:21 2021-07-29 10:51:11
f2fd2886-e47f-11eb-8e74-9bf3f680fffe 75403 2021 2 指标B-1-0013 238.5 60.4 2021-07-14 16:47:34 2021-07-14 16:48:30
ec0ef392-f0e6-11eb-a3a1-84dcf680fffe 89501 2020 3 指标F-1-0011 -8.2 2020-01-01 13:00:00 2020-01-01 13:00:00
f69fe5be-f0e6-11eb-a3a3-84dcf680fffe 89503 2020 5 指标J-1-0011 4.7 2020-01-01 13:00:00 2020-01-01 13:00:00
17a50276-f0e7-11eb-a3a9-84dcf680fffe 89509 2020 11 指标J-1-0012 16.5 2020-01-01 13:00:00 2020-01-01 13:00:00
134b9f82-f0e7-11eb-a3a8-84dcf680fffe 89508 2020 10 指标J-1-0013 16.0 2020-01-01 13:00:00 2020-01-01 13:00:00
82f8f410-e480-11eb-a917-36cef680fffe 76007 2021 4 指标K-1-0012 26.5 21.8 2021-07-14 16:51:47 2021-07-14 16:52:38
6abeae4c-f017-11eb-b25b-c0e0f680fffe 85507 2021 6 指标M-1-0011 22.4 21.9 2021-07-29 10:03:21 2021-07-29 10:51:11
6aba403c-f017-11eb-b259-c0e0f680fffe 85505 2021 6 指标A-1-0011 -60.2 -1.5 2021-07-29 10:03:21 2021-07-29 10:51:11
827d73d0-e480-11eb-a915-36cef680fffe 76005 2021 4 指标A-1-0012 20.2 28.5 2021-07-14 16:51:47 2021-07-14 16:52:38
3a938db6-e480-11eb-ad8b-35cdf680fffe 75805 2021 3 指标A-1-0013 30.3 31.6 2021-07-14 16:50:42 2021-07-14 16:51:25
c28dbba4-dd34-11eb-aa3a-b7d7f680fffe 47205 2021 5 指标A-1-0014 -47.2 13.4 2021-06-22 17:35:07 2021-06-22 17:35:44
Sql进阶-postgres-like、similar to相关推荐
- 一文掌握GaussDB(DWS) SQL进阶技能:全文检索
本文分享自华为云社区<GaussDB(DWS) SQL进阶之全文检索>,原文作者:Zhang Jingyao . 全文检索(Text search)顾名思义,就是在给定的文档中查找指定模 ...
- SQL 进阶技巧(上)
由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下: SQL 的书写规范 SQL ...
- SQL进阶随笔--case用法(一)
SQL进阶一整个是根据我看了pdf版本的整理以及自己的见解整理.后期也方便我自己查看和复习. CASE 表达式 CASE 表达式是从 SQL-92 标准开始被引入的.可能因为它是相对较新的技术,所以尽 ...
- 【SQL进阶】03.执行计划之旅1 - 初探
听到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. S ...
- SQL进阶,子查询与窗口函数
本节给大家讲解SQL在实际过程中用途比较多的子查询与窗口函数,下面一起学习. 示例工具:MySQL8.0.Navicat Premium 12 本文讲解内容:子查询与窗口函数 适用范围:SQL进阶应用 ...
- .NET深入实战系列—Linq to Sql进阶
.NET深入实战系列-Linq to Sql进阶 最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基 ...
- Linq To Sql进阶系列 -目录导航
博客园CLR基础研究团队|CLR团队精品系列|C# 3.0专题 [Linq To Sql进阶系列] 目录导航 1 Linq To Sql进阶系列(一)-从映射讲起 本系列,或多或少,直接或间接依赖入门 ...
- mysql外键猫头,SQL进阶
SQL进阶 1.约束之主键约束 非空.唯一.被引用 当表的某一列被指定为主键之后,该列就不能为空,不能有重复值出现. 创建表时指定主键的两种方式:CREATE TABLE stu1( sid CHAR ...
- Oracle PL/SQL进阶
Oracle PL/SQL进阶 控制结构 在任何计算机语言(c,java,c#,c++)都有各种控制语句(条件语句,循环语句,顺序控制结构..)在pl/sql中也存在这样的控制结构. 条件分支语句 p ...
最新文章
- 独家 | 手把手教你用PyTorch快速准确地建立神经网络(附4个学习用例)
- github标星8331+:吴恩达深度学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...
- Cogs 727. [网络流24题] 太空飞行计划(最大权闭合子图)
- OpenCv:椭圆上点的计算方程
- UTF-8 可变编码格式
- 手把手教你用ECharts画折线图
- SharePoint 2010 Crawl Component Stuck in “Recovering” status
- 实施 or 开发 ?
- HA集群--corosync+pacemaker
- c/c++中一个 类似 a[2] 的数组引发的一些思考
- 《三国演义》[明]罗贯中,七秒读书重制精排版电子书免费下载
- 【牛客网】养兔子(斐波那契数列)
- 【工具】Hosts文件详解
- bugku 啊哒 有趣的表情包
- ubuntu下的beyond compare破解
- Cannot copy param 0 weights from layer 'fc6'; shape mismatch.
- 美国大学排名之本科中最用功的学校top15
- 2009成渝微型计算机处于空白,2020届广州市高三年级调研测试文综地理试题(5页)-原创力文档...
- freeman链码,归一化链码,一阶差分链码,归一化一阶差分链码
- 学习笔记:SemanticStyleGAN 面向可控图像合成和编辑的组合生成先验学习