查询A表数据:
SELECT * FROM TABLE_A A //*代表全部。可以换成具体字段名称
给A表插入新的行:
INSERT INTO TABLE_A(列1, 列2,...) VALUES (值1, 值2,....)
修改A表id=666数据的name值:
UPDATE TABLE_A SET name=888 WHERE id=666
删除A表id=888 的数据:
DELETE FROM TABLE_A WHERE id=888
新增列:
alter table 表名称 add 列名称 varchar(30)
修改列类型:
alter table 表名称 alter column 列名称 varchar(4000)
删除列:
alter table 表名称 drop column 列名称
把表名为tableName的column1列名修改为column2:
EXEC sp_rename 'tableName.column1' , 'column2'
清空表数据:
truncate table 表名称
添加注释:
comment on column “表名称"."列名称" is '注释'
备份表:
create table 备份表名 as select * from 被备份表
复制旧表的数据到新表(假设两个表结构一样):
INSERT INTO 新表 SELECT * FROM 旧表
合并查询结果并以逗号分隔:
select LISTAGG(ROLE_ID,',') WITHIN GROUP(ORDER BY ROLE_ID) ROLE_ID from NP_USER_ROLE
左联接:
返回包括左表中的所有记录和右表中联结字段相等的记录
select * from table a left table b on a.id=b.id
右联接:
返回包括右表中的所有记录和左表中联结字段相等的记录
select * from table a right table b on a.id=b.id
等值连接:
只返回两个表中联结字段相等的行
select * from table a inner table b on a.id=b.id
去重(.存在2条一样的数据, 使用distinct):
select distinct * from table(表名) where 条件
合并查询:
select wmsys.wm_concat(n.USER_ID) as USER_ID from table n
去重合并:
select listagg(列名,',') within group(order by 列名) from (select distinct 列名 from 表名)
求这一列的平均数:
select avg(列名) from table
将B表某个字段的值赋值给 A表:
UPDATE TABLE_A A SET (A.NAME) =(SELECT B.NAME FROM TABLE_B B WHERE A.ID = B.ID(+))
查询一个表中名字相同的数据,并且显示出来,并且显示重复个数
select name, count(name) from student group by name having count(name)>0