SSMS
 sql >> Baza danych >  >> Database Tools >> SSMS

Powtarzający się ciąg znaków SQL

Poniżej znajdują się wzorce, np. 333... lub 123... lub 987...

Pomyśl o tym jak o remiku 500... Runy i grupy trójek lub więcej.

Declare @Table table (col int)
Insert into @Table values
(4141243),(4290577),(98765432),(78635389),(4141243),(22222),(4290046),(55555555),(4141243),(6789),(77777),(45678),(4294461),(55555),(4141243),(5555)

Declare @Num table (Num int);Insert Into @Num values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)

Select Distinct A.*
  From @Table A
  Join (
        Select Patt=replicate(Num,3) from @Num
        Union All
        Select Patt=right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3) from @Num where Num<8
        Union All
        Select Patt=reverse(right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3)) from @Num where Num<8
       ) B on CharIndex(Patt,cast(col as varchar(25)))>0

Zwroty

col
5555
6789
22222
45678
55555
77777
55555555
98765432

Teraz, jeśli nie zależy Ci na identyfikacji „przebiegów” (123...)”, po prostu usuń następujące elementy:

    Union All
    Select Patt=right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3) from @Num where Num<8
    Union All
    Select Patt=reverse(right('000'+cast((Num*100+Num*10+Num)+12 as varchar(5)),3)) from @Num where Num<8


  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Jak połączyć się z LocalDb

  2. Jaki jest cel plików .edmx?

  3. SQL Server Management Studio NIE pozwala mi tworzyć wielu kluczy obcych do wielu kluczy podstawowych

  4. SSMS 18.8 ulega awarii podczas ponownego dokowania kart

  5. Jak określić efektywne uprawnienia dla użytkownika bazy danych SQL Server za pomocą C#?