sql/hana批量存入表(每日一总)

1.查出数据 存入一个不存在的表

create column table "PMS"."SERVICEACTIVITYINTERFACE"  as
(
select * FROM "_SYS_BIC"."test/SERVICEACTIVITYINTERFACESQL"
)

2.查出数据 存入一个存在的表

insert into "PMS"."SERVICEACTIVITYINTERFACE"
(*)
SELECT*FROM "_SYS_BIC"."test/SERVICEACTIVITYINTERFACESQL"

3.partition by用法 分组排序:分组后再进行排序
rank()和row_number()区别在于

select SNO,score,
row_number() over (partition by a.sno order by a.score asc) as amount
 from "SUSER"."sc" a 
 group by sno,score

over(order by sroce range between 5 preceding and 5 following):窗口范围为当前行数据幅度减5加5后的范围内的。

`

> over(order by sroce rows between 5 preceding and 5 following):

`窗口范围为当前行前后各移动5行。

开窗函数

create column table SUSER.KC
 (
 prov_name varchar(20),
 city_name varchar(50),
 val_cnt int
 ) ; 
 select * from SUSER.KC
  insert into SUSER.KC values ('SX', 'SL', 23) 
  select * from SUSER.KC
  --分组 排序
 select prov_name, city_name, val_cnt ,
 row_number() over(partition by prov_name order by val_cnt) as rst
 from SUSER.KC

–partition by 分组 累加 val_cnt

 select prov_name, city_name, val_cnt ,
 sum(val_cnt) over(partition by prov_name order by val_cnt) as rst
 from SUSER.KC

–同维度 直接累加

  select prov_name, city_name, val_cnt ,
 sum(val_cnt) over(partition by prov_name) as rst
 from SUSER.KC
 select prov_name, city_name, val_cnt ,
 sum(val_cnt) over() as rst
 from SUSER.KC

–分许函数

   select prov_name, city_name, val_cnt ,
 lead(val_cnt) over(partition by prov_name order by val_cnt) as rst
 from SUSER.KC

累加
在这里插入图片描述

操作符

1.union和union all用法

UNION - 它结合了两个或多个Select语句的结果。但是它会消除重复的行。
UNION ALL - 此运算符与Union类似,但也显示重复的行。

2.INTERSECT 用法 与 inner join 用法 一致

相交操作用于组合两个SELECT语句,并返回两个SELECT语句中交集的记录。在Intersect的情况下,两个表中列和数据类型的数量必须相同。

3.MINUS用法

	数据多的放在前面 数据少的放在后面  返回多出来的数据
	第一张 1 2 3
	第二张 1 2
	返回 3

函数

字符string函数SQL字符string函数可以在HANA中使用SQL脚本。最常见的字符string函数是 -
ABS 返回绝对值
ASCII - 返回传递的字符string的整数ASCII值。
CHAR - 返回与传递的ASCII值相关联的字符。
CONCAT - 它是Concatenation运算符并返回组合的传递的字符string。
LCASE - 将字符string的所有字符转换为小写。
LEFT - 按照上述值返回传递的字符string的第一个字符。
LENGTH - 返回传递的字符string中的字符数。
LOCATE - 它返回传递的字符string中的子字符string的位置。
LOWER - 将字符string中的所有字符转换为小写。
NCHAR - 返回带有传入整数值的Unicode字符。
REPLACE - 搜索所有出现搜索字符string的传递原始字符string,并用替换字符string替换它们。
RIGHT - 返回所提到的字符string的最右边传递的值字符。
UPPER - 将传递的字符string中的所有字符转换为大写。
UCASE - 与UPPER功能相同。它将传递的字符string中的所有字符转换为大写。
subString subString(字段,从第几位,截取几个)
sustring(now(),2,3) 第二位 截取三个

select ASCII(sno) from "SUSER"."SCORE"
select CHAR(score) from "SUSER"."SCORE"
select concat(score,5) from "SUSER"."SCORE"
select LCASE(cno) from "SUSER"."SCORE"
select UPPER(cno) from "SUSER"."SCORE" 
select LEFT(cno,abs(-1)) from "SUSER"."SCORE" 
select right(cno,1) from "SUSER"."SCORE" 
select LENGTH('123asd') from "SUSER"."SCORE"
select LOCATE('123asd','s') from "SUSER"."SCORE"
select NCHAR(22) from "SUSER"."SCORE" 
select REPLACE('abc123a','a','0') from "SUSER"."SCORE"

可以使用的其他字符string函数是 - LPAD,LTRIM,RTRIM,STRTOBIN,SUBSTR_AFTER,SUBSTR_BEFORE,SUBSTRING,TRIM,UNICODE,RPAD,BINTOSTR

日期时间功能

在SQL脚本中可以使用HANA中的各种Date Time函数。最常见的日期时间函数是 -
CURRENT_DATE - 返回当前本地系统日期。
CURRENT_TIME - 返回当前本地系统时间。
CURRENT_TIMESTAMP - 返回当前本地系统时间戳详细信息(YYYY-MM-DD HH:MM:SS:FF)。
CURRENT_UTCDATE - 返回当前的UTC(格林威治标准日期)日期。
CURRENT_UTCTIME - 返回当前的UTC(格林威治标准时间)时间。
CURRENT_UTCTIMESTAMP返回当前的日期+时间。
DAYOFMONTH - 返回参数中传递日期的天(day)的整数值。
HOUR - 返回参数中传递时间的小时的整数值。
YEAR - 返回传递日期的年值。
Other Date Time functions are − DAYOFYEAR, DAYNAME, DAYS_BETWEEN, EXTRACT, NANO100_BETWEEN, NEXT_DAY, NOW, QUARTER, SECOND, SECONDS_BETWEEN, UTCTOLOCAL, WEEK, WEEKDAY, WORKDAYS_BETWEEN, ISOWEEK, LAST_DAY, LOCALTOUTC, MINUTE, MONTH, MONTHNAME, ADD_DAYS, ADD_MONTHS, ADD_SECONDS, ADD_WORKDAYS

add_months 获取月 添加
month 获取月

表达式

三元表达式
if(“SCORE”<60,“SCORE”+5,“SCORE”)

HANA

graphical图形化界面情况下

  • in(字段名,匹配值,匹配值)

  • addmonths(日期,增加的月份)

  • daysbetween(开始日期,结束日期)

    string_agg(‘字段’,’;’) 将列的值转换为行在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值