1,创建序列
CREATE SEQUENCE sequence1 START WITH 2999;
2,从一个表查数据插入到另一个表
insert into "BIPORTAL"."BIP_SYS_DRP"(ma_arch,id) select ma_arch,sequence3.NEXTVAL from "BIPORTAL"."V_T024";
注意 ,如果需要查询distinct ma_arch,但是sequence3.NEXTVAL是不允许distinct的,怎么办?
变通方法:此时可以先distinct建一个视图,再从视图中select。
3,数字转字符串
to_char(sequence3.NEXTVAL)
4,字符串转数字
to_decimal(sequence3.NEXTVAL)
5,修改一个字段的长度和类型
alter table "BIPORTAL"."BASIS_TB_DICT_TYPE" alter( pa_value VARCHAR(200));
6, a)添加一列 (可以图形化修改)
alter table "BIPORTAL"."YA_SYS_ACCOUNT" add ("WFJ_USER_ID" VARCHAR (100) null);
b)删除一列 (可以图形化修改)
alter table "BIPORTAL"."YA_SYS_ACCOUNT" drop ("ID");
7,修改表名:
RENAME TABLE "BIPORTAL"."P_PAY_TYPE_CRM" TO "BIPORTAL"."DICT_PAY_TYPE_CRM";
8 ,自动添加一列编号:
需求:根据部门分组,显示每个部门的工资等级
SELECT *, Row_Number() OVER () FROM employee 或者:
SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) FROM employee
9,从一个表读取一列数据插入到另一表的一列中:
update "BIPORTAL"."DICT_ZHIBIAO_ALL" t1 set t1.name9=(select t2.name from "BIPORTAL"."DICT_ZHIBIAO9" t2 where t1.id=t2.id );
10,添加删除主键:
alter table "BIPORTAL"."BIP_SYS_DRP" drop primary key;
alter table "BIPORTAL"."BIP_SYS_DRP" add [constraint key1] primary key(id);
11,对查询出的字符串进行替换(按照一定的映射规则替换)
SELECT MAP(STORE_CLASS_CODE,
'xxx',
'你好',
'sss',
'春天',
'') AS xxx
FROM "_SYS_BIC"."com.xxx.xxx.xx/xx"
12,读取表的注释中文 comment 字段(以下两种都可以,不同的是COLUMNS中既有table也有view,
TABLE_COLUMNS中只有table):
a) select COLUMN_NAME,comments from "SYS"."COLUMNS" where TABLE_NAME = 'VBRP'
或:b) select COLUMN_NAME,comments from "SYS"."TABLE_COLUMNS" where TABLE_NAME = 'VBRP'
13,hana表列模式和行模式互转
ALTER TABLE <schema_name>.<table_name> COLUMN;
ALTER TABLE <schema_name>.<table_name> ROW;
HANA数据库同时支持行存储和列存储。列存储读性能好,拥有较高的压缩比,一些特性如分区只适用于列存储。常用于批量更新的大数据量表。行存储更新插入性能好,常用于经常单独操作的小数据量表。
[列存储]
Ø 在少数列上进行的计算
Ø 基于少数列的值进行表搜索
Ø 表有很多列
Ø 表有大量的行和列操作(集合,扫描等)
Ø 因为主要列含有大量重复值可以达到高压缩比
[行存储]
Ø 一次只存储少量数据(如select/update一条记录)
Ø 应用需要访问整条记录数据
Ø 列含有较少重复值以至于压缩效果不好
Ø 不需要集合和快速搜索操作
Ø 表数据量较小(如配置表)