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(‘字段’,’;’) 将列的值转换为行