在SQL中,我们都知道单引号 ' 表示字符串的开始和结束符号,如: select * from students where name = '小明'; 但如果字符串里面有单引号时,应该怎么查询呢? 这是我最近遇到的一个问题,需求是对一张表的数据进行更新,但各个环境的数据并不一致,只能通过拼接的方式生成适合对应环境的变更脚本.更新语句格式如下: ' and grade is null; ' and grade is null; ... --只是举例,实际就是各个环境字段值不一致,需要先根据环境拼接
转自芙蓉清秀的BLOG http://blog.sina.com.cn/liurongxiu1211 sql去除重复语句 (2012-06-15 15:00:01) sql 单表/多表查询去除重复记录 单表distinct 多表group by group by 必须放在 order by 和 limit之前,不然会报错 ************************************************************************************ 1.
SQL去除重复记录 if not object_id('Tempdb..#T') is null drop table #T Go Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2)) Insert #T select 1,N'A',N'A1' union all select 2,N'A',N'A2' union all select 3,N'A',N'A3' union all select 4,N'B',N'
1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 例子: select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录(有主键id即唯一键) 如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 例子:select * from table where id in (select max(id) from table group by [
所以用这样一句SQL就可以去掉重复项了: select * from msg group by terminal_id; SQL中distinct的用法(四种示例分析) 示例1 select distinct name from A 执行后结果如下: 示例2 select distinct name, id from A 执行后结果如下: 实际上是根据"name+id"来去重,distinct同时作用在了name和id上,这种方式Access和SQL Server同时支持. 示例3:统
1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where peopleId in (sele
update A set col1 =REPLACE ( col1 ,'测试' , '') where col1 like '%测试%' 在使用过程中如果遇到text类型的字段时会报 参数数据类型 text 对于 replace 函数的参数无效 的错误 这时可以转换下字段类型 REPLACE ( cast(col1 as varchar(max)),'测试' , '')
第一步:查询重复记录 SELECT * FROM TableName WHERE RepeatFiled IN ( SELECT RepeatFiled FROM TableName GROUP BY RepeatFiled HAVING COUNT(RepeatFiled) > 1 ) 这一段逻辑很简单,就是把重复条数大于1的全部都搞出来就行了. 第二步:删除重复记录,只保留一条 SELECT * FROM TableName WHERE RepeatFil
--create-- SQL去除回车符,换行符,空格和水平制表符create function RepSymbolChar(@str nvarchar(max))returns nvarchar(max)as begin set @str=LTRIM(@str) set @str=RTRIM(@str) set @str=replace(@str,char(9),'') --水平制表符 set @str=replace(@str,char(10),'') -- 换行 set @str=repla