ACCESS中用SQL语句新增一列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACCESS中用SQL语句新增一列相关的知识,希望对你有一定的参考价值。

原始表
姓名 成绩
张三 100
李四 80
王五 60
50
40

目标表

姓名 成绩 成绩等级
张三 100 A
李四 70 B
王五 55 C
45 D
39 E

80-100 A
60-80 B
50-60 C
40-50 D
40及以下E

是在aceess 中SQL语言实现新增一列,数据量大,高于100万,无法用EXCEl实现
80-100 A
60-80 B
50-60 C
40-50 D
40及以下E

这个是规则

先给表增加一个字段:
alter table 表名 add [成绩等级] varchar(10) NULL

再给此字段赋值:
update 表名 set [成绩等级]=IIf([成绩]>=40,IIf([成绩]>=50,IIf([成绩]>=60,IIf([成绩]>=80,'A','B'),'C'),'D'),'E')

注意,在access的查询中,不支持多条语句一起执行,所以这两条sql你要分别执行。
参考技术A SELECT * INTO 目标表 FROM 原始表;
ALTER TABLE 目标表 ADD 成绩等级 text(1);
UPDATE 目标表 SET 成绩等级=SWITCH(成绩 between 80 and 100,'A',
成绩 between 60 and 79,'B',
成绩 between 50 and 59,'C',
成绩 between 40 and 49,'D',
成绩<40,'E')

说明:
第一行,表的拷贝(包括结构和数据)。
第二行,增加“目标表”的成绩等级,字段类型为文本型。
第三行,用SWITCH条件判断结构清晰。
语法: SWITCH(条件,满足条件返加值, [第二组同前面一样]
以上几句,ACCESS 仅支持单行运行。

参考资料:原创

oracle语句中如何把一列的值合并为一个值,用逗号隔开?

select Name from User;
我想把Name的值合并成一个值,用逗号隔开。
例如:张三,李四,王五
请问该怎么做?
谢谢。

所有版本的oracle都可以使用wm_concat()函数 。例:select wm_concat(name) as name from user;

但如果是oracle11g,使用listagg() within group()函数 。例:select listagg(name, ‘,’) within group( order by name) as name from user;

使用wm_Concat:

使用ListAgg:

结果:

参考技术A 所有版本的oracle都可以使用select wm_concat(name) as name from user;
但如果是oracle11g,使用select listagg(name, ',') within group( order by name) as name from user;
效率更高,官方也更推荐这种写法。追问

wm开头的函数代表什么意思?
wm本身代表什么含义,是什么的缩写?
oracle的扩展函数的手册啥的叫什么名字?
或者说我上哪里去下载?

追答

在oracle中有一个wmsys用户,这个用户和sys,system等用户一样,是oracle安装的时候就创建的,主要负责oracle日常工作的管理(WM:work manager),wm开头的函数是这个用户下的函数。
oracle的函数介绍在oracle的官方网站上就有,
由于百度知道不让发网址,你可以在百度上搜索listagg,搜索出来的第三项有oracle的网址就是官方的函数介绍的网站,你可以再继续看别的函数的介绍,只不过它的分类是按照功能来分的,而且都是英文的,想看某个函数的话并不太好找。

本回答被提问者采纳
参考技术B select wm_concat(name) name from user;--10g写法
select listagg(name,',') within group (order by name) name from user;--11g写法追问

wm开头的函数代表什么意思?
wm本身代表什么含义,是什么的缩写?
oracle的扩展函数的手册啥的叫什么名字?
或者说我上哪里去下载?

以上是关于ACCESS中用SQL语句新增一列的主要内容,如果未能解决你的问题,请参考以下文章

如何在sqlserver中用sql语句插入随机的大量的数据啊~求救。。

在hibernate中用sql语句

怎么用SQL语句查数据库中某一列是不是有重复项

MYSQL表中新增字段指定位置,SQL语句该怎么写?

求SQL语句建表建字段详细说明(access)

SQL server中用一段语句得到的查询结果 怎么当成一张新表进行更新操作