模糊查询与多条件模糊查询

  • 模糊查询
  • 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相关推荐

  1. 一文掌握GaussDB(DWS) SQL进阶技能:全文检索

    本文分享自华为云社区<GaussDB(DWS) SQL进阶之全文检索>,原文作者:Zhang Jingyao  . 全文检索(Text search)顾名思义,就是在给定的文档中查找指定模 ...

  2. SQL 进阶技巧(上)

    由于工作需要,最近做了很多 BI 取数的工作,需要用到一些比较高级的 SQL 技巧,总结了一下工作中用到的一些比较骚的进阶技巧,特此记录一下,以方便自己查阅,主要目录如下: SQL 的书写规范 SQL ...

  3. SQL进阶随笔--case用法(一)

    SQL进阶一整个是根据我看了pdf版本的整理以及自己的见解整理.后期也方便我自己查看和复习. CASE 表达式 CASE 表达式是从 SQL-92 标准开始被引入的.可能因为它是相对较新的技术,所以尽 ...

  4. 【SQL进阶】03.执行计划之旅1 - 初探

    听到大牛们说执行计划,总是很惶恐,是对知识的缺乏的惶恐,所以必须得学习执行计划,以减少对这一块知识的惶恐,下面是对执行计划的第一讲-理解执行计划. 本系列[T-SQL]主要是针对T-SQL的总结. S ...

  5. SQL进阶,子查询与窗口函数

    本节给大家讲解SQL在实际过程中用途比较多的子查询与窗口函数,下面一起学习. 示例工具:MySQL8.0.Navicat Premium 12 本文讲解内容:子查询与窗口函数 适用范围:SQL进阶应用 ...

  6. .NET深入实战系列—Linq to Sql进阶

    .NET深入实战系列-Linq to Sql进阶 最近在写代码的过程中用到了Linq查询,在查找资料的过程中发现网上的资料千奇百怪,于是自己整理了一些关于Linq中容易让人困惑的地方. 本文全部代码基 ...

  7. Linq To Sql进阶系列 -目录导航

    博客园CLR基础研究团队|CLR团队精品系列|C# 3.0专题 [Linq To Sql进阶系列] 目录导航 1 Linq To Sql进阶系列(一)-从映射讲起 本系列,或多或少,直接或间接依赖入门 ...

  8. mysql外键猫头,SQL进阶

    SQL进阶 1.约束之主键约束 非空.唯一.被引用 当表的某一列被指定为主键之后,该列就不能为空,不能有重复值出现. 创建表时指定主键的两种方式:CREATE TABLE stu1( sid CHAR ...

  9. Oracle PL/SQL进阶

    Oracle PL/SQL进阶 控制结构 在任何计算机语言(c,java,c#,c++)都有各种控制语句(条件语句,循环语句,顺序控制结构..)在pl/sql中也存在这样的控制结构. 条件分支语句 p ...

最新文章

  1. 独家 | 手把手教你用PyTorch快速准确地建立神经网络(附4个学习用例)
  2. github标星8331+:吴恩达深度学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...
  3. Cogs 727. [网络流24题] 太空飞行计划(最大权闭合子图)
  4. OpenCv:椭圆上点的计算方程
  5. UTF-8 可变编码格式
  6. 手把手教你用ECharts画折线图
  7. SharePoint 2010 Crawl Component Stuck in “Recovering” status
  8. 实施 or 开发 ?
  9. HA集群--corosync+pacemaker
  10. c/c++中一个 类似 a[2] 的数组引发的一些思考
  11. 《三国演义》[明]罗贯中,七秒读书重制精排版电子书免费下载
  12. 【牛客网】养兔子(斐波那契数列)
  13. 【工具】Hosts文件详解
  14. bugku 啊哒 有趣的表情包
  15. ubuntu下的beyond compare破解
  16. Cannot copy param 0 weights from layer 'fc6'; shape mismatch.
  17. 美国大学排名之本科中最用功的学校top15
  18. 2009成渝微型计算机处于空白,2020届广州市高三年级调研测试文综地理试题(5页)-原创力文档...
  19. freeman链码,归一化链码,一阶差分链码,归一化一阶差分链码
  20. 学习笔记:SemanticStyleGAN 面向可控图像合成和编辑的组合生成先验学习

热门文章

  1. stylus和stylus-loader使用
  2. Sharding JDBC分片和读写分离详解
  3. 阿波罗进阶版-7-自定位
  4. 2023年天津市大学软件学院专升本专业课考试考前提示和考场安排
  5. 【dMRI】desktop docker配置FSL工具链环境
  6. 使用python自带的虚拟环境创建虚拟环境
  7. Thinkphp6.0 多应用安装说明
  8. stm32查看系统时钟配置
  9. vue消息推送【个推】
  10. 【转】QMouseEvent鼠标事件简介