sql中我们偶尔会用到对数据进行合并,但其中的某一列数据要进行合并的操作: 如下图,一个用户有多个角色ID,如果我们想要统计一个用户有哪些角色,并且以单列的展现形式,单纯的用DISTINCT去掉肯定是不行的 我们可以用下面的sql语句进行拼接,对数据进行合并: SELECT g.UserID, (),f.RoleID) +'-' FROM ( SELECT UserID,RoleID FROM dbo.SC_User_Role) f WHERE f.UserID=g.UserID FOR XML
很多人新手对于数据库distinct 的用法有误解接下来我们看一段代码: 数据表:table id name 1 a 2 b 3 c 4 c 5 b 我们使用distinct来去重name是这样: select distinct name from table 结果为: a b c 可是一般数据库去重都是需要不止一个字段接下来看这个: select distinct name, id from table 多了个id效果会怎样呢
问题:test_table 表中有 a,b,c 三个字段,求根据字段a 去除重复数据,得到去重后的整行数据 根据mysql的经验尝试以下方法均失败 1.使用 distinct 关键字 (oracle查询数据中,不允许非 distinct 标注字段 ) select count(distinct a),a,b,c from test_table; 2.使用 group by (oracle查询数据中不允许非分组字段) select a,b,c from test_table group by a;
if not object_id('Tempdb..#T') is null drop table #T Go Create table #T([ID] ),[Memo] nvarchar()) Insert #T ,N'A',N'A1' union all ,N'A',N'A2' union all ,N'A',N'A3' union all ,N'B',N'B1' union all ,N'B',N'B2' Go --I.Name相同ID最小的记录(推荐用1,,),方法3在SQl05时,效率
CREATE TABLE temp2 AS SELECT MAX(id) id FROM sys_oper_procenter GROUP BY pro_title 创建一个temp2的表 根据标题分组,取最大的id 将id存入temp2表中 DELETE FROM sys_oper_procenter WHERE id NOT IN(SELECT id FROM temp2) 在临时表中查出所有id,删除不在临时表里的id
一.用SQL自连接查询处理列之间的关系 SQL自身连接,可以解决很多问题.下面举的一个例子,就是使用了SQL自身连接,它解决了列与列之间的逻辑关系问题,准确的讲是列与列之间的层次关系.SQL代码如下: SELECT FIRST.CNumber, SECOND.PCNumber FROM Course FIRST, Course SECOND WHERE FIRST.PCNumber=SECOND.CNumber: 在这个代码中,只涉及到一个表,即课程信息表COURSE(CNumber, CNam
单列去重: mysql: drop table test;create table test(id int(4));insert into test values(1),(2),(3),(4),(1),(2);select count(distinct id) from test;oracle:drop table test;create table test(id number(4));insert allinto test values(1)into test values(2)into t
场景 有一张得分表(score),记录了用户每次的得分,同一个人可能有多个得分. id name score 1 tom 45 2 jack 78 3 tom 34 . . . 需求:找出分数最高的前5个人. SQL1 首先我们写个最简单的sql: select id, name, score from score order by score desc limit 5; 如果sql这样写,结果可能是: id name score 2 jack 78 1 tom 45 3 tom 34 排序了,
感恩笔记之SQL查询功能最简使用模板 第一部分:SQL单表功能 1 语句主要关键字 SELECT --查询数据列 INTO --新建数据表 FROM --查询数据表 WHERE --筛选数据表结果 ORDER BY --筛选结果排序 GROUP BY --筛选结果分组 HAVING --筛选分组结果 UNION --合并查询结果 2 新增列功能汇总 SELECT distrint 列名, --1.单列去重 列 AS 新列名, --2.列命名 函数(列) + 列名 AS 新列名, --3.函数+计
SQL查询_基本功能 一 SQL语句整体架构 SELECT --1 查询数据表 INTO --2 新建数据表 FROM --3 查询数据表 WHERE --4 筛选数据表 ORDER BY --5 排序结果表 GROUP BY --6 分组结果表 HAVING --7 筛选分组结果表 UNION --8 合并查询结果表 二 select部分功能 1 select查询数据表 select * from 表名 2 select查询单列和多列 --1 查询一列 select 列1名 from 表名 -