ABAP: SQL 多值查询
基础查数据
问题举例:例如查物料类型为ZFRT、ZROH和ZRSA的物料编码。
1、直接查询,三种不同类型的物料类型是或的关系。
SELECT DISTINCT ma~matnr ma~mtartFROM mara AS maINNER JOIN mbewh AS mbON ma~matnr = mb~matnrINTO CORRESPONDING FIELDS OF TABLE gt_tabWHERE ma~mtart EQ 'ZFRT' ORma~mtart EQ 'ZROH' ORma~mtart EQ 'ZRSA'.
2、如果对1进行优化,三种物料类型放在列表项中,使用关键字IN,这样查询等价于1.
SELECT DISTINCT ma~matnr ma~mtartFROM mara AS maINNER JOIN mbewh AS mbON ma~matnr = mb~matnrINTO CORRESPONDING FIELDS OF TABLE gt_tabWHERE ma~mtart IN ( 'ZFRT' , 'ZROH', 'ZRSA' ).
3、定义区间函数,RANGE 内表
https://www.cnblogs.com/buduzhiren/p/13131483.html
SAP ABAP编程 Ranges用法_m15188153014的博客-CSDN博客
定义区间结构:
TYPES: BEGIN OF ty_sign,sign TYPE sign,option TYPE option,low TYPE mtart,high TYPE mtart,END OF ty_sign. "定义区间结构
(1)直接赋值,不建议这种直接堆叠赋值方式,代码量比较多。
DATA: lt_mtart TYPE TABLE OF ty_sign WITH HEADER LINE. "定义区间表lt_mtart-sign = 'I'. "赋值lt_mtart-option = 'EQ'.lt_mtart-low = 'ZFRT'.APPEND lt_mtart TO lt_mtart.lt_mtart-sign = 'I'.lt_mtart-option = 'EQ'.lt_mtart-low = 'ZROH'.APPEND lt_mtart TO lt_mtart.lt_mtart-sign = 'I'.lt_mtart-option = 'EQ'.lt_mtart-low = 'ZRSA'.APPEND lt_mtart TO lt_mtart.CLEAR lt_mtart.
(2) 优化:使用VALUE#() 进行赋值,建议这种方式,代码量会大大减少。
DATA: lt_mtart TYPE TABLE OF ty_sign .lt_mtart = VALUE #( sign = 'I' option = 'EQ' ( low = 'ZFRT' high = '' )( low = 'ZROH' high = '' )( low = 'ZRSA' high = '' )).
(3)或者用APPEND VALUE#() TO ITAB. 与(2)二者等同。
DATA: lt_mtart TYPE TABLE OF ty_sign . APPEND VALUE #( sign = 'I' option = 'EQ' low = 'ZFRT' high = '' ) TO lt_mtart.
APPEND VALUE #( sign = 'I' option = 'EQ' low = 'ZROH' high = '' ) TO lt_mtart.
APPEND VALUE #( sign = 'I' option = 'EQ' low = 'ZRSA' high = '' ) TO lt_mtart.

对RANGE内表 赋值完成后的,以上三种方式的查询语句均相同。
SELECT DISTINCT ma~matnr ma~mtartFROM mara AS maINNER JOIN mbewh AS mbON ma~matnr = mb~matnrINTO CORRESPONDING FIELDS OF TABLE gt_tabWHERE ma~mtart IN lt_mtart.
总结: 1、如果是多个字符,使用第二种,IN +列表项,查询最为简洁;
2、如果有多个区间,可以使用VALUE#()方式进行赋值。
相关文章:
ABAP: SQL 多值查询
基础查数据 问题举例:例如查物料类型为ZFRT、ZROH和ZRSA的物料编码。 1、直接查询,三种不同类型的物料类型是或的关系。 SELECT DISTINCT ma~matnr ma~mtartFROM mara AS maINNER JOIN mbewh AS mbON ma~matnr mb~matnrINTO CORRESPONDING FIELDS OF…...
分布式学习最佳实践:从分布式系统的特征开始
正文 在延伸feature(分布式系统需要考虑的特性)的时候,我逐渐明白,这是因为要满足这些feature,才设计了很多协议与算法,也提出了一些理论。比如说,这是因为要解决去中心化副本的一致性问题&…...
第三章 图论 No.8最近公共祖先lca, tarjan与次小生成树
文章目录 lcaTarjan板子题:1172. 祖孙询问lca或tarjan:1171. 距离356. 次小生成树352. 闇の連鎖 lca O ( m l o g n ) O(mlogn) O(mlogn),n为节点数量,m为询问次数,lca是一种在线处理询问的算法 自己也是自己的祖先 倍…...
[Kubernetes]Kubeflow Pipelines - 基本介绍与安装方法
1. 背景 近些年来,人工智能技术在自然语言处理、视觉图像和自动驾驶方面都取得不小的成就,无论是工业界还是学术界大家都在惊叹一个又一个的模型设计。但是对于真正做过算法工程落地的同学,在惊叹这些模型的同时,更多的是在忧虑如…...
Sui网络的稳定性和高性能
Sui的最初的协议开发者设计了可扩展的网络,通过水平扩展的方式来保持可负担得起的gas费用。其他区块链与之相比,则使用稀缺性和交易成本来控制网络活动。 Sui主网上线前90天的数据指标证明了这一设计概念,在保持100%正常运行的同…...
RabbitMQ 安装教程
RabbitMQ 安装教程 特殊说明 因为RabbitMQ基于Erlang开发,所以安装时需要先安装Erlang RabbitMQ和Erlang版本对应关系 查看地址:www.rabbitmq.com/which-erlan… 环境选择 Erlang: 23.3及以上 RabbitMQ: 3.10.1Windows 安装 1. 安装Erlang 下载地…...
STM32F429IGT6使用CubeMX配置GPIO点亮LED灯
1、硬件电路 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚 4、生成工程配置 5、部分代码 6、实验现象...
DOM的节点操作+事件高级+DOM事件流+事件对象
一.节点操作 1.父节点: node.parentNode 得到的是离元素最近的父级节点 2.子节点: parentNode.childNodes 所有的子节点 包含元素节点 文本节点等等parentNode.children (非标准) 获取所有的子元素节点,实际开发常用 parentNode.firstChild 获取…...
云端剪切板,让你的数据同步无界
云端剪切板,让你的数据同步无界! 每个人都应该保护自己的数据,同时使它易于访问和共享。这就是我们的云剪切板网站诞生的原因!无论你在哪里,只要登录我们的网站,就可以随时随地使用你的剪切板数据。 你可…...
Location匹配与Rewrite重写
一、常见的Nginx正则表达式 ^ :匹配输入字符串的起始位置 $ :匹配输入字符串的结束位置 * :匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”:匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“oll…...
Docker源码阅读 - goland环境准备
docker 源码分为两部分 cli 和 moby(docker) tips: docker是从moby拷贝过去的;docker整体是一个C-S架构,cli客户端,docker服务端 docker-ce:https://github.com/docker/docker-ce cli:https://…...
数据库信息速递 -- MariaDB 裁员后,前景不确定 (翻译)
开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 ,在新加的朋友会分到3群ÿ…...
4.1 Windows终端安全
数据参考:CISP官方 目录 安全安装保护账户安全本地安全策略安全中心系统服务安全其他安全设置软件安全获取 一、安全安装(以安装windows系统为例) 选择合适的版本 商业版本:家庭版、专业版、专业工作站版、企业版特殊版本&…...
win10强制卸载奇安信天擎
1、win r 打开运行 2、输入msconfig进入系统配置面板 3、点击引导,修改安全引导配置项 4、重启系统(桌面会变成纯黑背景,符合预期,莫紧张) 5、删除安装的文件夹 若是安装天擎时选择的自定义安装,则配置…...
npm常用命令
npm -v:查看 npm 版本 npm init:初始化后会出现一个 Package.json 配置文件,可以在后面加上 -y,快速跳到问答界面 npm install:会根据项目中的 package.json 文件自动给下载项目中所需的全部依赖 npm insall 包含 -…...
(一)创建型设计模式:4、原型模式(Prototype Pattern)
目录 1、原型模式的含义 2、C实现原型模式的简单实例 1、原型模式的含义 通过复制现有对象来创建新对象,而无需依赖于显式的构造函数或工厂方法,同时又能保证性能。 The prototype pattern is a creational design pattern in software development. …...
【算法学习】高级班九
这种互为旋变串: 给定两个字符串,判断是否互为旋变串 代码: 打表法: 每一层内的数字不互相依赖,只依赖它下面的层但实际上size会约束L1和L2的值,即L1和L2<N-size 思路:设置一个窗口…...
数据安全加固:深入解析滴滴ES安全认证技术方案
前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于ES具有强大的搜索和分析功能,同时也因其开源和易于使用而成为黑客攻击的目标。近些年,业界ES数据泄露事件频发, 以下是一些比较严重的数据泄露案件: 202…...
Typescript第九/十章 前后端框架,命名空间和模块
第九章 前后端框架 9.1 前端框架 Typescript特别适合用于开发前端应用。Typescript对JSX有很好的支持,而且能安全地建模不可变性,从而提升应用的结构和安全性,写出的代码正确性高,便于维护。 9.1.1 React JSX/TSX内容等 详情…...
LLM - argparse 解析脚本参数
目录 一.引言 二.argparse 解析 shell 参数 1.使用步骤 2.python 侧示例 3.shell 侧示例 一.引言 CUDA_VISIBLE_DEVICES0 python src/train_bash.py \--stage pt \--model_name_or_path path_to_your_model \--do_train \--dataset wiki_demo \--template default \--fin…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
