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

Разделете думи с главна буква в sql

Ето функция, която създадох, която е подобна на "премахване на не азбучни знаци". Как да премахнете всички неазбучни знаци от низ в SQL Server?

Този използва съпоставяне, чувствително към главни букви, което активно търси комбинация без интервал/главна буква и след това използва функцията STUFF за вмъкване на интервал. Това Е скаларен UDF, така че някои хора веднага ще кажат, че ще бъде по-бавно от други решения. За тази идея, казвам, моля, тествайте я. Тази функция не използва никакви таблични данни и прави цикли само толкова пъти, колкото е необходимо, така че вероятно ще ви осигури много добра производителност.

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

Наречете го така:

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. Разлика между числови, плаващи и десетични числа в SQL Server

  2. Мога ли да използвам ADFS 2.0 за удостоверяване на определени потребители срещу SQL Server?

  3. Вземете знака между първите 2 специални знака в SQL

  4. Свързване на SQL Server към PostgreSQL

  5. Преобразувайте „datetimeoffset“ в „date“ в SQL Server (T-SQL примери)