--去掉重复的记录 select ID,Code,ColorNum from (     SELECT      ROW_NUMBER() OVER(         PARTITION BY Code+ColorNum          ORDER BY Code+ColorNum      ) rn,     ID,Code,ColorNum     FROM TwoColumns ) a where a.rn=1 order by ID     SELECT a.id, a.name, a…
一个表中的id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数 select id ,Count(*) from table_name group by id having count(*)>1 给出一张表 查询数学成绩相同的记录,并显示出该成绩相同记录数 SELECT Math,COUNT(*) from [TestDB].[dbo].[Student] group by Math having COUNT(*)>1; 结果…
需要使用:分区函数用法(partition by 字段) select *,row_number() over(partition by item order by date  ) as index from tab 分区索引 ------------------------------------------- SQL Server select * from (select * , row_number() over(partition by id order by state desc)…
delete from Resource where Title in (select Title from Resource group by Title having count(Title) > 1) and   Id not in (select min(Id) from Resource group by Title having count(Title)>1)…
目前网上搜索的删除重复记录,大部分都是where子查询,本人感觉看上去不美观,故亲自手写了一个,如下: delete from mst_sku using mst_sku,(  select distinct max(sys_no) as sys_no, sku_code   from mst_sku   group by sku_code   having count(sku_code)>1 ) as t2where mst_sku.sku_code = t2.sku_code and mst…
1.查询的时候把某一个字段的值拼接成字符串 以下是演示数据. 第一种方式:使用自定义变量 ) SET @Names='' -- 需要先赋值为空字符串,不然结果会是 null SELECT @Names=@Names+S_Name+',' -- S_Name 类型为字符串类型,如果不能隐示转换,就需要强制转换 FROM Student SELECT @Names 这种方法有一个好处就是,拼接出来的字符串可以赋值给变量或直接插入表中指定字段,可以适用于存储过程之类的. 第二种方式:转换为 XML 格…
需求描述:根据某一个字段或几个字段去重来显示任一条数据,第一条或最后一条. 数据样式如下图: 尝试解决: --count(*)方法(只把条数为1条的显示出来了,超过1条全部过滤了) select * from t4 where 自编条码 in () 以上方法,会把仅1条记录的显示,但是重复的并没有保留其中一条,也过滤掉了. 所以,我们需要变化一下,提供三种解决方法: 一.通过row_number按重复字段进行分组排序,然后显示第1条,采用AB表方式: --方法1 row_numer(),等值查询…
mysql的读分快照读和当前读 快照读 是指写的同时,读不阻塞,达到并发的作用 这时候的读 是 记录的历史版本,存在于undo里,当然回滚时就的也是这个undo 当执行一条update语句时,记录本身保持不变,会再insert一条语句的,新记录的回滚指针指向旧的记录,同时新记录有个新的事务id 当新记录对于其他事务不可见时(也就是该事务的begin时间要早于commit update旧记录的时间),延着回滚指针,找到上一个版本的记录,看该记录 是否能让 该事务看到 delete操作不会直接删除掉…
主要介绍一下个人对主键(primary key).外键(foreign key).候选键(Candidate key).超键(super key).references的总结 概念: 主键:用户选择元组标识的一个候选键,主键不允许为空 外键:来描述两个表的关系,外键可为空 超键:能唯一的标识元组的属性集 候选键:不含有多余属性的超键 实例: 假如有以下学生和教师两个表: Student(student_no,student_name,student_age,student_sex,student…
MySql5.6表操作 数据类型 整型 浮点型 字符类型 日期类型 枚举类型与集合类型 约束条件 Primary key Unique key Not null Foreign key 创建表的完整语法 Create table 表明(字段名1 类型[(宽度) 约束条件]) 注意事项: 在同一张表中,字段的名字不能相同 宽度和约束条件可以选,字段名和类型是必须的 当输入多个字段的时候最后一个字段末尾不能加逗号 宽度: 宽度是对村塾数据的限制 创建一个表测试下: mysql> create dat…