当前位置:主页 > 星欧娱乐资讯 > 公司新闻 >
SQL Server 查询设置  LIKEDISTINCTHAVING排序详解
时间:2025-06-13 18:53 点击次数:114

  本专栏文章以 SAP 实施顾问在实施项目中需要掌握的sql 语句为偏向进行选题,用例使用的是 SAP B1 的数据库,使用工具为 SQL Server。

  本篇为复杂查询中功能强大、使用边界的条件语句LIKE、DISTINCT、HAVING,与排序、子查询等查询设置。

  不考虑表连接的基础上,在查询信息时,本文涉及到的各逻辑条件排列顺序如下:

  模糊查询 LIKE 用于字符搜索,通过对所需查找的信息进行条件设定,如某字开头、某字结尾、包含某字、不含某字、第几位是某字等,将所需信息筛出。与之功能对应的还有REGEXP(正则表达式),并且其功能更强大,表达更简略。但是 SQL Server 不支持使用。

  使用模糊查询 LIKE 时,对于所需核对的信息进行位置限定,需要根据条件使用 “%”,若需要以某字开头则形式为 X% ,某字结尾则为%X 。

  此时需要在条件词左右打上 “%”,对文本所在位置进行限制,即 “京” 字出现在的任何一个位置,都将被查找出来:

  如果对于查询信息有严格的位数要求,如需要第几位是某字,即可通过占位符 “_” 占出前面位数,

  例1:查找【业务伙伴主数据】表单中业务伙伴编码第二位为 “1” 的公司。

  使用占位符占用第一位,意思是无论第一位是什么都无所谓只要有东西就行,第二位是要求 “1”,其后一共几位无所谓了所以用通配符 “%”。

  设定某一位,为在一定范围内任意一个值都可以,则使用 “[]” 框选集合,无论中括号内放多少字符,中括号都只算一位。

  例:查找【业务伙伴主数据】表单中业务伙伴编码以“C” 或 “V” 开头的公司。

  否定符 “^” 仅能在中括号内使用,哪怕只有一位,要使用否定符 “^”,也需要加上 “[]”。

  在 “[]” 内设定内容存在既定顺序时,可以使用“-”,主要包含:字母按照字母表顺序和数字按照大小顺序。

  则会查询出上一节3.2 案例的查询结果的补集,即返回上一案例以外的内容行。

  使用场景:比如在查询所有下过采购订单的客户时,可以使用得到去重后的客户名单

  对分组后的数据过滤,一般会先使用 GROUP BY;倘若没有出现 GROUP BY,则默认 HAVING 把整张表当作一组进行过滤

  放在 ORDER BY 后面,起到一个对分组进行升序(ASC)或降序(DESC)续排列的作用。

  放在 SELECT 之后,按照 TOP + [数量] 的格式,实现对前 [数量] 行信息的效果。

  在 WHERE 后,除了可以接某张已经存在的具体表,还可以接一个【子查询】,即由一个新的查询构建的新表,将其嵌套进原有的查询命令时,形成一个【子查询】。

  例:查找销售额最高的客户在【业务伙伴主数据】中登记的业务伙伴代码、业务伙伴名称、业务伙伴类型、组代码、电线、联系人信息。

  在 MySQL 中,可以利用 LIMIT 对查询的信息条目进行限制,如查前 x 条数据、跳过前 y 条数据查找后面的 z 条数据。但是 SQL Server 中不支持 LIMIT,可以使用 TOP 联合 not 和 子查询完成以上功能的实现。

  sqlserver/mysql按天、按小时、按分钟统计连续时间段数据【推荐】

Copyright © 2025 星欧娱乐–星欧注册登录(平台招商服务站) TXT地图 HTML地图 XML地图