HANA 一些sql语句

article/2025/9/13 22:54:49
函数!!
时间函数:DAYS_BETWEEN、ADD_DAYS、FORMAT、CURRENT_DATE、YEAR、MONTH等。
        字符串函数:CONCAT、TRIM、LENGTH、REPLACE、STRING_AGG、SUBSTRING等;

 数字函数 ROUNDFLOORRANDABS

视图!!!

如果要创建计算视图写sql脚本的那种,在新建的时候就要选对类型了!

视图创建知识参考链接:HANA Studio-建模-长篇_xiaomici的博客-CSDN博客_hana studio、[Hana学习笔记]Hana自定义函数_XLevon的博客-CSDN博客_hana函数

开窗函数!!!也很重要!!!

以下有一个表格↓

 进行分组排序和不分组排序↓  首先是不重复排名序号的排名!!!

以下是有重复值的序号排名↓ 

各种参数解释参考:开窗函数lag()_lead()(二)_妙趣生花的博客-CSDN博客_开窗函数lead

原表:

 参数:

1  LAG

2  LEAD

 select lead(start_time,1,-3)over(order by start_time) from exam_record;

 dense_rank() over():连续排序。对相等的值排名相同,但序号从1到n连续。如果有两个人都排在第一名,则排在第2名(假设仅有1个第二名)的人是第3个人。

4  NTILE:可以看作是把有序的数据集合平均分配到指定的数量n的桶中,将桶号分配给每一行,排序对应的数字为桶号。如果不能平均分配,则较小桶号的桶分配额外的行,并且各个桶中能放的数据条数最多相差1。

5  PERCENT_RANK

6  PERCENTILE_CONT

7  PERCENTILE_DISC和CUME_DIST

                cume_dist 返回小于等于当前值的行数/分组内总行数
                比如,我们可以统计小于等于当前薪水的人数,所占总人数的比例

8  RANDOM_PARTITION

FIRST_VALUELAST_VALUE 函数
     FIRST_VALUE 取分组内排序后,截止到当前行,第一个值

    LAST_VALUE函数则相反:
     LAST_VALUE 取分组内排序后,截止到当前行,最后一个值

10  SERIES_FILTER

11  WEIGHTED_AVG

※这里有个开窗函数的例子,关于  最近七天平均值的。  ↓

Hana自定义函数参考:[Hana学习笔记]Hana自定义函数_XLevon的博客-CSDN博客_hana函数

创建语法: 

create function 函数名
(	in 参数 参数类型
)
returns 返回值 返回值类型
language sqlscript as
beginSQL语句
end;

实际案例:

create function FV_MARA_MATNR
(	in i_matnr 		nvarchar(40)		--输入物料代码
)
returns o_matnr nvarchar(40)			--输出物料代码
language sqlscript as
beginif(:i_matnr <> '') thenselect case when length(replace_regexpr('[^0-9]' in :i_matnr))=length(:i_matnr) thenleft('000000000000000000',18-length(:i_matnr))||(:i_matnr) else :i_matnr endinto o_matnrfrom dummy;elseselect :i_matnr into o_matnr from dummy;end if;
end;

SAP Hana存储过程:SAP Hana存储过程_黑斯汀的博客-CSDN博客_hana执行存储过程

create procedure sp_test (in date varchar(10),out a1 t_a1)  --参数定义,格式为:(IN|OUT|INOUT VAR_NAME VAR_TYPE),多个参数之间用,相隔,可不定义;注意:定义了with result view  必须有out参数,且必须为table类型language sqlscript 		--指定存储过程实现的程序语言,默认为: SQLSCRIPT,可不定义sql security invoker 	--指定存储过程的安全模式,默认: DEFINER,可不定义reads sql data 			--存储过程为只读的,不能包含DDL与DML(INSERT、UPDATE、DELETE)语句,如果调用其他存储过程,则被调用过程也是只读的。可不定义with result view test2 	--将只读取存储过程的输出看做结果视图,可以被其他查询SQL用来查询,此时存储过程就像一个表或视图。可不定义
as 
begin 	a1 = with a as (select * from a1 where date = :date  --引用变量需要使用: + 变量名称)SELECT * FROM a;
end;

 


http://chatgpt.dhexx.cn/article/B8LwytqT.shtml

相关文章

SQL语句的封装

本篇供个人学习使用&#xff0c;有问题欢迎讨论 封装SQL语句 ​ 在封装SQL语句之前&#xff0c;我们得知道什么是DAO封装与实体类以及JDBC工具类的封装与连接数据库的具体流程。 ​ 关于JDBC工具类的封装可以查看我的另一篇博文 JDBC工具类的封装 ​ 想了解具体的连接数据库…

mysql sql delete语句_SQL Delete语句

在本教程中,您将学习如何使用SQL DELETE语句删除表中的一行或多行。 1. SQL DELETE语句简介 要从表中删除一行或多行,请使用DELETE语句。 DELETE语句的一般语法如下: DELETE FROM table_name WHERE condition; 首先,提供要删除行的表名称(table_name)。 其次,在WHERE子句中…

MySQL入门(5)——基于datagrip的SQL语句学习

目录 一、什么是SQL二、SQL约束1、主键约束&#xff08;1&#xff09;添加主键约束方式一&#xff1a;创建表时&#xff0c;在字段描述处&#xff0c;声明指定字段为主键方式二&#xff1a;创建表时&#xff0c;在constraint约束区域&#xff0c;声明指定字段为主键方式三&…

MySQL数据库增删改查及聚合查询SQL语句学习汇总

目录 数据库增删改查SQL语句 MySQL数据库指令 1.查询数据库 2.创建数据库 3.删除数据库 4.选择数据库 创建表table 查看所有表 创建表 查看指定表的结构 删除表 数据库命令进行注释 增删改查&#xff08;CRUD&#xff09;详细说明 增加 SQL库提供了关于时间的…

第一部分_SQL查询语句学习

第一部分 SQL查询语句的学习 单表查询 查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值 SELECT 订购日期,订单ID,客户ID,雇员ID FROM 订单 WHERE 订购日期 BETWEEN 1996-07-01 AND 1996-07-15 查询供应商的ID、公司名称、…

了解RS-232、RS-485串口通信协议

文章目录 一、串口通信协议1、RS-232标准2、RS-485标准3、RS232、485电平与TTL电平的区别4、"USB/TTL转232"模块工作原理1、工作流程2、驱动 2、总结3、参考资料 一、串口通信协议 对于通信协议&#xff0c;我们可以分为两个层面进行理解&#xff0c;分别是物理层和…

RS485通讯协议

https://blog.csdn.net/qq_29344757/article/details/71516037 1. 硬件层协议 通讯协议主要是实现两个设备之间的数据交换功能&#xff0c;通讯协议分硬件层协议和软件层协议。硬件层协议决定数据如何传输问题&#xff0c;比如要在设备1向设备2发送0x63&#xff0c;0x63的二进…

RS——485通讯协议

1、RS485通讯实验简介 RS485是一种工业控制环境中 常用的通讯协议&#xff0c;它具有抗干扰能力强、传输距离远的特点。485协议又232协议改进而来&#xff0c;协议层不变&#xff0c;只改进了物理层&#xff0c;因而保留了串口通讯协议应用简单的特点。 看图就知道了&#xf…

485Modbus协议

1.RS485 1&#xff09;485通信 --差分传输 物理层&#xff1a; 通信引脚 A B 使用双绞线通信。 发送器&#xff1a; 逻辑1&#xff1a; A>B AB之间电压为2V~6V 逻辑0&#xff1a; A<B AB之间电压为-2V~-6V 接收器&#xff1a; 逻辑1&#xff1a; A>B AB之间电…

带你认识什么是485通信

在现代工业控制系统中&#xff0c;常常需要实现分布式控制&#xff0c;而分布式控制需要实现不同设备之间的通信。其中&#xff0c;485通信协议是一种被广泛使用的通信协议之一。 1. 介绍 A. 485通信的定义 485通信协议是一种串行通信协议&#xff0c;也被称为RS-485。它是由美…

常见的通讯协议总结(USART、IIC、SPI、485、CAN)

目录 一、通讯的基本概念1、串行通讯2、并行通讯3、串行通讯与并行通讯对比4、传输模式&#xff08;单工、半双工、全双工&#xff09; 二、USART—串口通讯1、物理层2、协议层&#xff08;1&#xff09;波特率&#xff08;2&#xff09;起始和停止信号&#xff08;3&#xff0…

485通讯与MODBUS的区别与联系

最近做智能检测的项目&#xff0c;设备、串口之间的通讯比较多&#xff0c;一会儿485&#xff0c;一会儿modbus RTU&#xff0c;有点晕了&#xff0c;这里重新梳理一下RS485、485通讯协议、ModBus通讯协议、Modbus Rtu通讯这几个点的联系和区别。 先说RS485吧&#xff0c;RS48…

485通讯和modbus通讯协议

485通信&#xff1a; 采用差分信号&#xff1a;A比B电压高是1&#xff0c;A比B电压低是0&#xff0c;电压高低值在0.2V-6V之间。 硬件连接上&#xff1a;所有A接到一起&#xff0c;所有B接到一起AB之间要加匹配电阻100欧到1K之间。 485通讯配置时&#xff1a;先要使能发送TX…

MODBUS通讯协议详解(基于485)

参考&#xff1a;灵育科技Modbus课程总结 作者&#xff1a;Naunyang 时间&#xff1a;2020-11-23 13:51:58 网址&#xff1a;https://blog.csdn.net/Naunyang/article/details/108740456?spm1001.2014.3001.5502 参考&#xff1a;MODBUS用于单片机通讯 作者&#xff1a;hillch…

485通讯协议_终于有人把RS485通讯协议应用及缺点分析清楚了,看完收获多多

RS-485是工业控制环境中常用的通信协议&#xff0c;具有抗干扰能力强、传输距离长的特点。RS-485通信协议是对RS-232协议的改进。协议层不变&#xff0c;但只有物理层得到了改进&#xff0c;从而保留了串行通信协议应用简单的特点。 RS-232和RS-485的特性的不同 典型的串行通信…

Linux初学者必知的5个学习网站

1 推荐一&#xff1a;鸟哥的Linux私房菜&#xff08;http://vbird.dic.ksu.edu.tw/&#xff09; 这个不用多说吧&#xff0c;只要你学习Linux就肯定听说过鸟哥的私房菜&#xff0c;经典&#xff0c;对于初学者来说绝对是经典&#xff0c;推荐&#xff01;&#xff01;&#xff…

Linux初学者五个网站推荐

推荐一&#xff1a;鸟哥的Linux私房菜&#xff08;http://vbird.dic.ksu.edu.tw/&#xff09; 这个不用多说吧&#xff0c;只要你学习Linux就肯定听说过鸟哥的私房菜&#xff0c;经典&#xff0c;对于初学者来说绝对是经典&#xff0c;推荐&#xff01;&#xff01;&#xff01…

Linux学习网站推荐

推荐一&#xff1a;鸟哥的Linux私房菜&#xff08;http://vbird.dic.ksu.edu.tw/&#xff09; 这个不用多说吧&#xff0c;只要你学习Linux就肯定听说过鸟哥的私房菜&#xff0c;经典&#xff0c;对于初学者来说绝对是经典&#xff0c;推荐&#xff01;&#xff01;&#xff01…

如何在linux系统上搭建部署网站?

目录 前言 基础配置的更改和软件的安装 更改软件安装源 升级apt(advanced packing tool) 安装net-tools 安装openssh-server 安装vsftpd 环境配置 修改vsftpd的写入权限 安装HTTP服务软件 修改nginx配置 修改文件夹访问权限 重启nginx 测试 结语 使用云服务器&a…

Linux学习13—网站服务

文章目录 一. 网站简介1.1 前言1.2 概念1.3 名词解释1.4 网站架构 二. 静态网站2.1 Apache简介2.2 Apache基础2.3 Apache安装与配置2.4 虚拟主机 三. 动态网站3.1 简介3.2 搭建论坛系统discuz3.3 论坛系统discuz用户端测试 一. 网站简介 1.1 前言 用户UI的转变&#xff1a;B/S…