这是我关于SQL Server 2008 Express数据库的第一个问题,包含文章,数量,价格等。不幸的是,当我第一次加载数据时,我加载数据会产生以下错误:
我为(几乎)每篇非常相似但具有不同角色的文章创建了两条记录。
以下是一个例子:
唯一不同的角色是,
和.
。有没有办法SELECT
所有这些文章到DELETE
逗号并留下其他文章?
请注意,不同角色的位置不固定,可能是从右边或中间的第3个
答案 0 :(得分:1)
您可以使用自我加入:
delete T2
from TableName T1 JOIN
TableName T2 on Replace(T1.article,'.','')=Replace(T2.article,',','')
where T2.article like '%,%'
中的演示
您可以通过delete T2
select T2.*
来查看要删除的记录
答案 1 :(得分:0)
delete from my_table
where my_column like '%,%';
答案 2 :(得分:0)
首先搜索那些存在重复值的记录,然后删除它们。
select B.*
--delete B
from
(select [column], replace(replace([column], ',', ''), '.', '') from [yourtable]
group by [column] having count(1) > 1)A
JOIN [yourtable] B
ON A.[column] = B.[column] and A.[column] like '%,%'
replace(replace([column], ',', ''), '.', '')
将获取无,
和.
的记录,而count(1) > 1
将获得重复的记录。