首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL语句Delete出现有关问题,请大家进来帮忙看看

2012-01-12 
SQL语句Delete出现问题,请大家进来帮忙看看!表名:item字段id主键标识linkntextdeleteitemwhereidnotin(sel

SQL语句Delete出现问题,请大家进来帮忙看看!
表名:item
字段   id   主键   标识
link       ntext

delete   item   where   id   not   in(select   max(id)   from   item   group   by   cast(link   as   varchar))
这是我原来的删除语句,想实现的效果是:删除link字段重复的数据,保留一条。

可是执行这句后会把一些link字段不重复的数据给删除。请大家帮忙看看是哪里错了,该怎么改才能实现我要的效果,谢谢!

[解决办法]

--cast()如果不指定varchar的长度,默认只保留前30个字节

create table T (context text)

insert into T
select '啊0123456789-a-0123456789-b-0123456789-c-0123456789-d '

select context from T

select
cast(context as varchar) as 默认只保留30个字节,
len(cast(context as varchar)) as 字符个数,
datalength(cast(context as varchar)) as 字节数
from T

drop table T



[解决办法]
--把你的SQL修改一下

delete item where id not in(select max(id) from item group by cast(link as varchar(8000)))

热点排行