「SAP ABAP」OPEN SQL(八)【WHERE语句大全】

news2024/11/20 23:30:58

在这里插入图片描述

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要: 在本节内容中,我们将继续学习ABAP OPEN SQL的知识,今天带来的内容是WHERE子句在OPEN SQL中的应用,它是经常使用的重点语句之一,各位小伙伴们一定要熟练掌握!


🤟每日一言: 永远年轻,永远热泪盈眶!

目录

  • 前言
  • 数据库表准备
  • 简单WHERE子句
    •  案例演示
      •   使用"="运算符
      •   使用">"运算符
      •   使用"<"运算符
      •   使用"<>"运算符
  • WHERE 子句中的逻辑运算符
    •  案例演示
      •   使用"AND"逻辑运算符
      •   使用"OR"逻辑运算符
      •   使用"NOT"逻辑运算符
  • BETWEEN 运算符
    •  案例演示
  • IN 子句
    •  案例演示
  • LIKE 子句
    •  案例演示
      •   使用"%"通配符
      •   使用"_"通配符
  • 子查询语句
  • 写在最后的话


前言

在这里插入图片描述

  在本节内容中,我们将继续学习ABAP OPEN SQL的知识,今天带来的内容是WHERE子句在OPEN SQL中的应用,它是经常使用的重点语句之一,各位小伙伴们一定要熟练掌握!


数据库表准备

  本文所有案例都是基于数据库表SFLIGHT,本案例中的SFLIGHT数据库表数据如下,供各位小伙伴们对照来观察代码运行结果:

在这里插入图片描述


简单WHERE子句

在这里插入图片描述

  一个简单的 WHERE 子句通常包含一个条件表达式,该表达式评估为 TRUE FALSE。这个表达式通常由以下元素组成:

  • 字段名:需要筛选的字段名。
  • 运算符:用于比较字段值的运算符,如等于号(=)、大于号(>)、小于号(<)等。
  • :与字段值进行比较的值。

    以下是简单WHERE子句的一般语法样式:
SELECT ...
FROM <table_name>
WHERE <field_name> [= | > | < | <>] 'value'.

参数介绍:

  • <table_name>: 目标数据库表
  • <field_name>: 数据库表中字段。

 案例演示

  下面给出四段以SFLIGHT数据库表为基准的示例代码,详细讲解了ABAP OPEN SQL中简单WHERE子句的应用,仅供参考:

PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解!

TIPS:运算符与字段和值之间需要间隔至少一个空格单位!!!

  使用"="运算符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
WHERE carrid ='AC'.

  LOOP AT gt_sflight INTO DATA(gs_sflight).
    WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
  ENDLOOP.

在这里插入图片描述

该段代码使用"="运算符检索出了SFLIGHT数据库表中所有carrid等于AC的数据。

  使用">"运算符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE price > 2000.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

该段代码使用">"运算符,检索出了SFLIGHT数据库表中所有price大于2000的数据。

  使用"<"运算符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE price < 2000.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

该段代码使用"<"运算符,检索出了SFLIGHT数据库表中所有price小于2000的数据。

  使用"<>"运算符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE price <> 2500.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

该段代码使用"<>"运算符,检索出了SFLIGHT数据库表中所有price不等于2500的数据。


WHERE 子句中的逻辑运算符

在这里插入图片描述
  WHERE子句中可以使用逻辑运算符来将多个条件组合在一起。下面是一些常见的逻辑运算符:

  • AND:当所有条件都为 TRUE 时,整个条件表达式才会评估为 TRUE
  • OR:当至少有一个条件为 TRUE 时,整个条件表达式就会被评估为 TRUE
  • NOT:将条件表达式的结果反转

 案例演示

  下面给出三段以SFLIGHT数据库表为基准的示例代码,详细讲解了ABAP OPEN SQL中WHERE子句逻辑运算符的应用,仅供参考:

PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解!

TIPS:运算符与字段和值之间需要间隔至少一个空格单位!!!

  使用"AND"逻辑运算符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE carrid = 'AC' AND price = 2500.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

该段代码使用"AND"逻辑运算符,检索出了SFLIGHT数据库表中所有carrid等于'AC'price等于2500的数据。

  使用"OR"逻辑运算符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE PRICE = 1500 OR PRICE = 2500.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

该段代码使用"OR"逻辑运算符,检索出了SFLIGHT数据库表中所有price等于'1500'或者price等于2500的数据。

  使用"NOT"逻辑运算符

*PS:注意NOT与括号之间需要有空格,条件表达式与括号之间也需要有空格!!
SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE NOT ( PRICE = 1500 OR PRICE = 2500 ). 

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

该段代码使用"NOT"逻辑运算符,将上方使用OR逻辑运算符的那段代码的结果进行了反转,剔除掉了SFLIGHT数据库表中所有price等于'1500'或者price等于2500的数据。


BETWEEN 运算符

在这里插入图片描述

  BETWEEN 运算符用于检索介于两个值之间的数据。BETWEEN 运算符需要指定一个起始值和一个结束值,它将匹配这两个值之间(包括这两个值)的所有行。


  以下是BETWEEN运算符的一般语法样式:

SELECT ...
FROM <table_name>
WHERE <field_name> BETWEEN 'value1' AND 'value2'.

参数介绍:

  • <table_name>: 目标数据库表
  • <field_name>: 数据库表中字段。
  • value1,value2: 值

 案例演示

  下面给出一段以SFLIGHT数据库表为基准的示例代码,详细讲解了ABAP OPEN SQL中BETWEEN运算符的应用,仅供参考:

PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解。

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE price BETWEEN 1000 AND 1500.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

该段代码中使用BETWEEN运算符将数据进行了限制,只从数据库表中取出price在 1000到1500之间的数据。


IN 子句

在这里插入图片描述

  IN 子句可以用来匹配一系列值中的任何一个。IN 子句可以使用一个列表,列表中包含需要匹配的值。这个列表可以是常量、字段或子查询的结果。


  以下是IN子句的一般语法样式:

SELECT ...
FROM <table_name>
WHERE <field_name> IN (['value1', 'value2', 'value3' | 子查询语句]).

参数介绍:

  • <table_name>: 目标数据库表
  • <field_name>: 数据库表中字段。
  • value1,value2,value3: 值
  • IN后面的列表中还可以填入子查询语句,将在本文最后进行讲解

 案例演示

  下面给出一段以SFLIGHT数据库表为基准的示例代码,详细讲解了ABAP OPEN SQL中IN子句的应用,仅供参考:

PS:为了简便,下面的语法都基于OPEN SQL的新语法,关于新语法的讲解将在本系列最后章节进行详细地讲解。

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE price IN ( 1500,2500 ).

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

在这段代码中,使用IN子句利用列表限制了price的值只能为1500或者2500,但是要注意列表中的值需要用逗号分隔并且距离两端括号至少一个空格单位


LIKE 子句

在这里插入图片描述

  LIKE 子句用于基于模式的比较,它可以用来匹配一个特定的模式。LIKE 子句可以使用通配符来代替某些字符。通配符有两种:

  • 百分号(%):代表任何字符序列,包括零个字符。
  • 下划线(_):代表任何单个字符。

    以下是LIKE子句的一般语法样式:
SELECT ...
FROM <table_name>
WHERE <field_name> LIKE 'value%'.

参数介绍:

  • <table_name>: 目标数据库表
  • <field_name>: 数据库表中字段。
  • value%: 通配值

 案例演示

  下面给出两段以SFLIGHT数据库表为基准的示例代码,详细讲解了ABAP OPEN SQL中LIKE子句的应用,仅供参考:

  使用"%"通配符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE CARRID LIKE 'A%'.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

上述代码将从SFLIGHT表中检索所有CARRID列以'A'开头的行,并将他们打印输出到屏幕中。

  使用"_"通配符

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE CARRID LIKE 'L_'.

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述

上述代码将从SFLIGHT表中检索所有CARRID列以'L'开头的行,并将他们打印输出到屏幕中。


子查询语句

在这里插入图片描述

  子查询是一个 SELECT 语句,它嵌套在另一个 SELECT 语句中作为一个条件。子查询的结果可以是一个单一的值一个列表一个表

  以下是子查询语句的一般语法样式:

SELECT ...
FROM <table_name1>
WHERE <field_name> IN (SELECT <field_name> FROM <table_name2>).

参数介绍:

  • <table_name1>: 目标数据库表
  • <table_name2>: 子查询目标数据库表
  • <field_name>: 数据库表中字段。

  下面给出一段以SFLIGHT数据库表SPFLI数据库表为基准的示例代码,详细讲解了ABAP OPEN SQL中LIKE子句的应用,仅供参考:

SELECT * FROM sflight INTO TABLE @DATA(gt_sflight)
      WHERE CARRID IN ( SELECT CARRID FROM spfli WHERE connid = '0026'  ).

LOOP AT gt_sflight INTO DATA(gs_sflight).
  WRITE: / gs_sflight-carrid,gs_sflight-connid,gs_sflight-price.
ENDLOOP.

在这里插入图片描述


写在最后的话

  本文花费大量时间介绍了OPEN SQL中WHERE语句大全,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!

在这里插入图片描述

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{9c81c1}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向! \textcolor{ed7976}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富! \textcolor{98c091}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/418501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL主从复制、读写分离(MayCat2)实现数据同步

文章目录1.MySQL主从复制原理。2.实现MySQL主从复制&#xff08;一主两从&#xff09;。3.基于MySQL一主两从配置&#xff0c;完成MySQL读写分离配置。&#xff08;MyCat2&#xff09;1.MySQL主从复制原理。 MySQL主从复制是一个异步的复制过程&#xff0c;底层是基于Mysql数据…

AI编程助手 Kodezi : 记录、分享一个 VS code 插件

目录0. 概述1. 安装 / 功能介绍1.1 安装1.2 功能介绍1.2.1 Debug1.2.2 代码优化1.2.3 代码转换1.2.4 逐行注释1.2.5 多行注释1.2.6 生成文档1.2.7 生成代码2. KodeziChat 聊天机器人2.1 聊天机器人功能介绍2.2 如何使用 KodeziChat &#xff1f;3. Kodezi 版本介绍3.1 免费版3.…

【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题三

相关链接 【2023年第十一届泰迪杯数据挖掘挑战赛】C题泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题一 【2023年第十一届泰迪杯数据挖掘挑战赛】C题泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题二 【2023年第十一届泰迪杯数据挖…

【软件应用】TamperMonkey同步操作

不废话&#xff0c;记录一些关键点 要设置同步&#xff0c;先得打开高级设置模式 众所周知&#xff0c;这里可以设置同步&#xff0c;建议设置为WebDAV同步&#xff0c;这样通用性更强 至于选择啥网盘就看自己的需求了&#xff0c;支持WebDAV的网盘还是很多的&#xff0c;甚…

数据库设计案例

一个专辑可以包含多个曲目&#xff0c;一个曲目只能属于一个专辑 一对多 一个专辑可以包含多条短评&#xff0c;一条短语只能属于一个专辑 一对多 一个用户可以包含多条短评&#xff0c;一个短评只能属于一个用户 一对多 一个专辑可以属于多个用户&#xff0c;一个用户…

04-vue3侦听器

文章目录1.watch1.侦听数据源类型2.demo2.watchEffect函数3.watch vs. watchEffect1.watch 计算属性允许我们声明性地计算衍生值。然而在有些情况下&#xff0c;我们需要在状态变化时执行一些“副作用”&#xff1a;例如更改 DOM&#xff0c;或是根据异步操作的结果去修改另一…

熬大夜~ 阿里P8架构师总结微服务设计企业架构转型之道笔记

前言 本文涉及两个方面的知识体系&#xff0c;即企业架构知识体系和软件架构知识体系。 企业架构和软件架构虽然都与IT相关&#xff0c;但其知识体系是完全不同的两个领域。一般而言&#xff0c;搞企业架构的人士不明白软件架构的细节和实现&#xff0c;而从事软件架构的架构…

如何评价一款RTK差分基站的性能?

RTK是Real-Time Kinematic(实时动态)的缩写&#xff0c;是一种利用载波相位观测进行实时动态相对定位的技术&#xff0c;它能够实时提供测站点在指定坐标系中的三维定位结果&#xff0c;并达到厘米级精度。国内有时也将利用RTK技术为卫星定位设备提供厘米级修正服务的RTK基站简…

114. 二叉树展开为链表 Python

文章目录一、题目描述示例 1示例 2示例 3二、代码三、解题思路一、题目描述 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终…

基于jsp的公交查询系统源码数据库论文

目录 摘 要 1 Abstract 1 1 绪论 1 1.1 选题背景 1 1.2 国内外发展状况 1 1.3 选题的目的 1 1.4 研究手段及意义 1 2相关技术简介 3 2.1Jsp技术介绍 3 2.2 MyEclipse简介 4 2.3 数据库技术 4 2.3.1 数据库的体系结构 4 2.3.2 数据库管理系统&#xff08;D…

(十七)排序算法-基数排序

1 基本介绍 1.1 概述 &#xff08;1&#xff09;基数排序&#xff08;radix sort&#xff09;属于“分配式排序”&#xff0c;顾名思义&#xff0c;它是通过键值的各个位的值&#xff0c;将要排序的元素分配至某些“桶”中&#xff0c;达到排序的作用。 &#xff08;2&#x…

Denoising Diffusion Probabilistic Model,DDPM阅读笔记——(一)

Denoising Diffusion Probabilistic Model一、写在前面二、相关数学知识简介二、生成模型简介&#xff1a;三、变分自编码器概述&#xff08;VAE&#xff09;一、写在前面 人工智能生成内容&#xff08;AI Generated Content&#xff0c;AIGC&#xff09;近年来成为了非常前沿…

2023最新面试题-Java-2

基础语法 1. Java有哪些数据类型 定义&#xff1a;Java语言是强类型语言&#xff0c;对于每一种数据都定义了明确的具体的数据类型&#xff0c;在内存中分配了不同 大小的内存空间。 细化的数据类型就是占用空间的基本元素。分类&#xff1a;基本数据类型 数值型 整数类型…

MySQL-事务处理

MySQL事务 什么是事务 数据中的事务是指数据库执行的一些操作&#xff0c;这些操作最终要么全部执行成功&#xff0c;要么全部失败&#xff0c;不会存在部分成功&#xff0c;部分失败的情况 如果在事务的支持下&#xff0c;最终有两种结果&#xff1a; 操作成功&#xff1a;…

推荐一款 AI 脑图软件,助你神速提高知识体系搭建

觅得一款神器&#xff0c;接近我理想中&#xff0c;搭建知识体系的方法&#xff0c;先来看视频作为数据库开发或管理者&#xff0c;知识体系搭建尤为重要。来看看近些年缺乏足够数据库知识面造成的危害&#xff1a;a/ 数据安全风险&#xff1a;例如&#xff0c;2017年Equifax数…

Dubbo之认识RPC架构

文章目录一、互联网架构演变1.1 RPC架构1.2 SOA架构1.3 微服务架构1.4 SOA vs 微服务二、RPC 基本概念2.1 RPC 协议2.2 RPC 框架2.3 RPC 运行流程2.4 RPC vs HTTP提示&#xff1a;以下是本篇文章正文内容&#xff0c;Dubbo 系列学习将会持续更新 官方文档&#xff1a;https://c…

电池连接接触电阻的优化研究

金属与金属接触处的接触电阻主要受以下因素影响&#xff1a; 表面结构机械负载 表面结构可以通过表面平整度、表面氧化和吸水性进一步描述。 电池组中的这些接头将采用焊接或螺栓连接方式。最初最容易想到的是螺栓母线接头。 螺栓扭矩可用于估算力&#xff0c;从而估算接触压…

mvc的编辑和删除

之前实现了mvs的翻页登录显示等等一系列操作&#xff0c;现在我们再照葫芦画瓢实现一下编辑和删除。 1、编辑 我的思路是首先在list页面要给出编辑的超链接按钮&#xff0c;点击后跳转到一个jsp页面用来输入编辑的相关内容&#xff0c;再提交到负责编辑功能的servlet中。 首…

双硬盘安装Ubuntu22

1、下载Ubuntu系统的iso文件 官方下载地址&#xff1a;Download Ubuntu Desktop | Download | Ubuntu 阿里云镜像下载地址&#xff1a;ubuntu-releases安装包下载_开源镜像站-阿里云 2、制作U盘引导盘 下载软件 Rufus&#xff1a;https://rufus.akeo.ie 绿色免安装&#xff0…

Spring Security源码剖析从入门到精通.跟学尚硅谷(二)

Spring Security源码剖析从入门到精通.跟学尚硅谷 二4. SpringSecurity 微服务权限方案4.1 什么是微服务1、微服务由来2、微服务优势3、微服务本质4.2 微服务认证与授权实现思路1、认证授权过程分析2、权限管理数据模型3、项目技术说明4、搭建工程(1).创建父工程(2).创建子模块…