sql查找不重复记录
2012-02-17 13:45
281 查看
用Distinct子句呀 selectdistinct*from[yourtable] 或 selectdistinct[字段名1],[字段名2]from[yourtable]
防止重复插入记录sql实现方法
更多详细内容请查看:
SQL语句判断空值相等
SQL语句判断空值相等(离问题结束还有0天0小时)SQLcodeCreateTabletesta(t1varchar(10),t2varchar(10),t3varchar(10),t4varchar(10))
CreateTabletestb(t1varchar(10),t2varchar(10),t3varchar(10),t4varchar(10))
Insertintotestaselect\'hello\',\'11\',\'441\',\'441\'
unionselect\'word\',\'21\',\'441\',\'441\'
unionselect\'word\',\'21\',\'442\',\'442\'
unionselect\'word2\',\'212\',\'442\',\'442\'
Insertintotestbselect\'hello\',\'11\',\'xxx\',\'xxxx\'
unionselect\'word\',\'21\',\'xxx\',\'xxxx\'
select*fromtesta
select*fromtestb
select*fromtestaawherenotexists(select*fromtestbbwherea.t1=b.t1anda.t2=b.t2anda.t3=b.t3anda.t4=b.t4)
上面是在论坛上看到一个比对表内容变化的例子,可以精确到每个字段。
现在出现一个问题就是如果某一个字段在两个表中都为空用a.t4=b.t4的话两个字段不相等,虽然没有做任何更改,仍然得到了这个记录。因为NULL的判断不能用=号要用ISNULL。
有没有解决这个问题的方法?就是两个字段都为NULL的时候不让出现在这个结果里
还有,如果有更好的比对两个表的方法也烦请回答下,要求能得到的结果A表和B表相比B新增加的,B修改过的记录集。然后我可以用程序反映到A表去。
mysql中用sql判断两个字段是否相等
比如
字段avarchar(200)数据:abcd
字段bvarchar(1000)数据:15,石家庄|15,石家庄|15,石家庄|15,石家庄|
字段b需要以|分割。也可以说有几个|就算字段b的长度是几。
15,石家庄|这算长度1。
查询字段a和字段b长度不等的数据:
select*from表wherelength(a)<>length(b)
正常是length(b),但现在字段b是用|分割的,怎么写
问题补充:
yang280974817大哥你看花眼了吧,回答不对题啊。
mysql具体语法不太清楚,但可以用
replace方法不知是否支持
length(b)-length(replace(b,'|',''))作为长度比较
相关文章推荐
- 【SQL】通过rowid查找及删除重复记录
- DB2查找重复记录SQL
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- (转载)SQL 查找重复记录
- 查找sql表中多余的重复记录
- 如何用sql 查找两个字段重复的记录,并列出重复记录
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- SQL重复记录处理(查找,过滤,删除)
- MSSQL:数据库中查找重复记录和删除重复记录的sql
- (转)SQL 查找重复记录
- SQL 查找重复记录
- Oracle 删除重复数据只留一条 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 wher
- SQL查找重复记录(1)
- SQL 查找重复记录
- SQL查找和删除重复记录
- (转)SQL 查找重复记录