首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql server删除重复的首字母缩写

sql server删除重复的首字母缩写
EN

Stack Overflow用户
提问于 2014-03-31 17:46:12
回答 3查看 113关注 0票数 2

我有张桌子看起来像这样:

代码语言:javascript
复制
acronym | word
FCN     | FCN
FCN     | Fourth Corner Neurosurgical Associates
FHS     | FHS
HW      | HW

正如你所看到的,有些缩略词有匹配的词,有些没有。我想保留那些有匹配词的缩略词。对于没有匹配词的缩略语,我想保留缩略语本身。我希望结果表如下所示:

代码语言:javascript
复制
acronym | word
FCN     | Fourth Corner Neurosurgical Associates
FHS     | FHS
HW      | HW

我还想不出有什么办法能做到这一点。可能按“缩写”分组并选择"word",但有什么算法可以决定删除"FCN“或”第四角神经外科协会“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-31 17:56:19

假设不可能有“坏”的话:

代码语言:javascript
复制
DELETE myTable
  FROM myTable del
 WHERE [acronym] = [word]
   AND EXISTS ( SELECT *
                  FROM myTable lw -- Longer Word
                 WHERE lw.[acronym] = del.[acronym] 
                   AND Len(lw.[word]) >  Len(lw.[acronym]) )

或者你想要避免删除SQL|SQL时,有一个‘坏’的其他(更长的)记录读eg。SQL|Strange Things Happen

重读这个问题,我现在很怀疑,如果你真的想要DELETE那些记录,或者只是想要SELECT与定制的记录过滤出去。在后一种情况下,您必须使用(包括mellamokb的建议)

代码语言:javascript
复制
SELECT [acronym], [word]
  FROM myTable mt
 WHERE [acronym] <> [word]
    OR NOT EXISTS ( SELECT *
                      FROM myTable lw
                     WHERE lw.[acronym] = mt.[acronym] 
                       AND lw.[word] <> lw.[acronym] )
票数 3
EN

Stack Overflow用户

发布于 2014-03-31 18:02:50

根据您的数据,您可能可以使用区分语句和Case语句的组合。

代码语言:javascript
复制
select distinct acronym, 
(case acronym when word then word else acronym end) as Abbr 
from acronyms
票数 0
EN

Stack Overflow用户

发布于 2014-03-31 18:08:22

试试这个:

代码语言:javascript
复制
create table #t (acronym varchar(100), word varchar(100));
go
insert #t values
('FCN', 'FCN'),
('FCN', 'Fourth Corner Neurosurgical Associates'),
('FHS', 'FHS'),
('HW', 'HW');
go

;with x as (
    select *,
    row_number() over(partition by acronym order by case when acronym=word then 1 else 0 end) as rn
    from #t
)
delete x where rn <> 1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22768571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档