当前位置: 首页 > 面试题库 >

删除重复的重复字符

咸承教
2023-03-14
问题内容

我在存储的过程中有一个字符串,类似于',,,sam,,bob,'',,,' 从上面的字符串中,我必须从中删除多个逗号,它必须看起来像
'sam,bob,'或仅在 ',,,' then时 ''。我必须仅使用Sql Server函数。我正在使用Sql Server
2008和.Net 3.5

提前致谢。


问题答案:

该选项适用于仅使用逗号或最多398个连续逗号的字符串。

 SELECT 
     CASE 
         WHEN TargetString NOT LIKE '%[^,]%' 
             THEN '' /*The string is exclusively commas*/
         ELSE 
            REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(TargetString,
            REPLICATE(',',16),','), /*399/16 = 24 remainder 15*/
            REPLICATE(',',8),','),  /* 39/ 8 =  4 remainder 7*/
            REPLICATE(',',4),','),  /* 11/ 4 =  2 remainder 3*/
            REPLICATE(',',2),','),  /*  5/ 2 =  2 remainder 1*/
            REPLICATE(',',2),',')   /*  3/ 2 =  1 remainder 1*/
         END
 FROM T

如果需要更多,在顶部添加额外的2的幂,或者如果需要较少,则从顶部删除2的幂。每个阶段的注释表示该阶段无法成功处理的最小数目。

所有注释行都采用这种格式

/*  L/D    =  Q remainder R */

D:    Corresponds to the length of the string generated by `REPLICATE`
R:    Is always D-1
Q+R:  Form L for the next step

因此,将系列向上扩展到另一个REPLICATE(',',32),',')阶段

D = 32 
R = 31
Q = 368 (399-31)
L = (368 * 32) + 31 = 11807

这样就可以处理最多11,806个字符的逗号部分。



 类似资料:
  • 我试图编写一个代码,它接收并删除该中的重复字符。 例如。如果,则应返回。到目前为止,我的代码只返回与给定的相同的tekst…

  • 请注意,在转向您之前,我已经浏览了各种帖子。事实上,我尝试实现中提供的解决方案:基于“notin”条件从数据帧中删除行 我的问题如下。让我们假设我有一个巨大的数据帧,我想删除重复的数据帧。我很清楚我可以使用drop_duplicates,因为这是最快的最简单的方法。然而,我们的老师希望我们创建一个包含重复项ID的列表,然后根据这些值是否包含在上述列表中删除它们。 现在,让我们看看输出: 因此,我得

  • 如果输入“abcde”和输入“abc”=“de” 我想知道如何使用jQuery创建代码。

  • 问题内容: 我有一张看起来像这样的桌子 表格1 ID,名称 如何编写查询以删除所有具有重复名称的行,但保留具有较低ID的行? 问题答案: 如果您使用的是SQL Server 2005或更高版本: 如果使用SQL Server 2000及更低版本

  • 本文向大家介绍pandas 删除重复,包括了pandas 删除重复的使用技巧和注意事项,需要的朋友参考一下 示例 用途drop_duplicates: 当您不想获取数据框的副本,而要修改现有的数据框时:            

  • 问题内容: 我有像这样的字符串“ aaaabbbccccaaddddcfggghhhh”,我想删除重复的字符,得到像这样的字符串“ abcadcfgh”。 一个简单的实现是: 使用正则表达式是否可能有更好的实现? 问题答案: 你可以这样做: 正则表达式使用反向引用和捕获组。 正常的正则表达式是,但是您必须在Java中使用另一个反斜杠来使反斜杠转义。 如果您想要重复的字符数: 演示版