Supprimer la lettre majuscule (au less 2 caractères) de la string dans SQL Server

J'ai quelques exemples de données ci-dessous et voudrais supprimer toute lettre majuscule qui au less 2 caractères ou peut dire double lettre majuscule.

HON MANI no St.Chom Chao Trapeang Thloeng Chaom Chau Dangkao LAY NA 35 st 70 Phum10 Boeng Salang Tuol Kouk Phnom Penh OK KEMEUN Ek Phnom , Battam Bang CY VANN Rukkhak Kiri ,Battam Bang LENG EUN , Korng Pisei , Kampong Speu SEK HONG , Phnom Sruoch , Kampong Speu 

Je veux get le résultat comme ci-dessous sans nom

 no St.Chom Chao Trapeang Thloeng Chaom Chau Dangkao 35 st 70 Phum10 Boeng Salang Tuol Kouk Phnom Penh Ek Phnom , Battam Bang Rukkhak Kiri ,Battam Bang ,Korng Pisei , Kampong Speu , Phnom Sruoch , Kampong Speu 

Toute idée s'il vous plaît.

quelque chose comme ça

 ; with data as ( select line = 'HON MANI no St.Chom Chao Trapeang Thloeng Chaom Chau Dangkao' union all select line = 'LAY NA 35 st 70 Phum10 Boeng Salang Tuol Kouk Phnom Penh ' union all select line = 'OK KEMEUN Ek Phnom , Battam Bang' union all select line = 'CY VANN Rukkhak Kiri ,Battam Bang' union all select line = 'LENG EUN , Korng Pisei , Kampong Speu' union all select line = 'SEK HONG , Phnom Sruoch , Kampong Speu' ) select *, result = case when first_two_word = upper(first_two_word) then replace(line, first_two_word, '') else line end from data cross apply ( select first_two_word = left(line, charindex(' ', line, charindex(' ', line) + 1)) ) w 

vous pouvez get le résultat en créant une fonction de valeur scalaire

 CREATE FUNCTION dbo.getLowerCaseSsortingng(@Ssortingng VARCHAR(300)) RETURNS VARCHAR(300) AS BEGIN WHILE(PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ][ABCDEFGHIJKLMNOPQRSTUVWXYZ]%',LTRIM(@Ssortingng) COLLATE Latin1_General_CS_AS )>0) BEGIN SET @Ssortingng = STUFF(@Ssortingng,PATINDEX('%[ABCDEFGHIJKLMNOPQRSTUVWXYZ][ABCDEFGHIJKLMNOPQRSTUVWXYZ]%',LTRIM(@Ssortingng) COLLATE Latin1_General_CS_AS ) ,CHARINDEX(' ',LTRIM(@Ssortingng)),'') END RETURN @Ssortingng END GO 

Appelez la fonction comme

  SELECT dbo.getLowerCaseSsortingng(SsortingngColumn) FROM YourTable