Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Podziel słowa z wielką literą w sql

Oto utworzona przeze mnie funkcja podobna do „usuwania znaków niealfabetycznych”. Jak usunąć wszystkie znaki niealfabetyczne z ciągu w SQL Server?

Ten używa sortowania z rozróżnianiem wielkości liter, które aktywnie wyszukuje kombinację bez spacji/wielkiej litery, a następnie używa funkcji STUFF do wstawienia spacji. To JEST skalarny UDF, więc niektórzy od razu powiedzą, że będzie wolniejszy niż inne rozwiązania. Do tego pomysłu, mówię, przetestuj to. Ta funkcja nie używa żadnych danych z tabeli i zapętla tylko tyle razy, ile jest to konieczne, więc prawdopodobnie zapewni bardzo dobrą wydajność.

Create Function dbo.Split_On_Upper_Case(@Temp VarChar(1000))
Returns VarChar(1000)
AS
Begin

    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^ ][A-Z]%'
    While PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues collate Latin1_General_Bin, @Temp) + 1, 0, ' ')

    Return @Temp
End

Nazwij to tak:

Select dbo.Split_On_Upper_Case('OneTwoThreeFour')
Select dbo.Split_On_Upper_Case('OneTwoThreeFour')
Select dbo.Split_On_Upper_Case('One')
Select dbo.Split_On_Upper_Case('OneTwoThree')
Select dbo.Split_On_Upper_Case('stackOverFlow')
Select dbo.Split_On_Upper_Case('StackOverFlow')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MVC4:UserIsInRole — nie można połączyć się z bazą danych SQL Server

  2. Jak mogę rozwiązać problem z pulą połączeń między ASP.NET i SQL Server?

  3. SUBSTRING Polecenie w SQL:elementarz

  4. SQL zastępuje wszystkie NULL

  5. Konfigurowanie zależności maven dla SQL Server