Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Премахване на повтарящи се дублирани знаци

Това работи за низове, които са само запетаи или имат до 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 в горната част, ако имате нужда от повече, или премахнете отгоре, ако имате нужда от по-малко. Коментарите за всеки етап показват най-малкия брой, с който този етап няма да се справи успешно.

Всички редове за коментари са в този формат

/*  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 знака.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разберете към коя таблица принадлежи заключване на страница

  2. Как да създам потребител в SQL-Server, който има достъп само до една таблица и може да вмъква само редове

  3. Елементите ORDER BY трябва да се появят в списъка за избор, ако изразът съдържа оператор UNION, INTERSECT или EXCEPT (SQL Server)

  4. Наблюдавайте бази данни и екземпляри чрез Монитор на активността | Отстраняване на проблеми с производителността на SQL Server -2

  5. Как програмно да създадете ODBC свързана таблица към изглед на SQL сървър и да може да бъде редактирана?