たぶん私は愚かですが、提供されたいくつかに対して書いた以下のクエリをチェックすると、これはもう少し効率的です(インデックス付けに依存します)。
このコードは少し馬鹿げていますが、馬鹿げているように見えても機能する場合は馬鹿ではないということわざはありません。
Begin
Declare @text Varchar(30);
Set @text = 'qWeRtY kEyBoArD TEST<>&''"X';
Declare @1 Varchar(2)= ' a'
, @2 Varchar(2)= ' b'
, @3 Varchar(2)= ' c'
, @4 Varchar(2)= ' d'
, @5 Varchar(2)= ' e'
, @6 Varchar(2)= ' f'
, @7 Varchar(2)= ' g'
, @8 Varchar(2)= ' h'
, @9 Varchar(2)= ' i'
, @10 Varchar(2)= ' j'
, @11 Varchar(2)= ' k'
, @12 Varchar(2)= ' l'
, @13 Varchar(2)= ' m'
, @14 Varchar(2)= ' n'
, @15 Varchar(2)= ' o'
, @16 Varchar(2)= ' p'
, @17 Varchar(2)= ' q'
, @18 Varchar(2)= ' r'
, @19 Varchar(2)= ' s'
, @20 Varchar(2)= ' t'
, @21 Varchar(2)= ' u'
, @22 Varchar(2)= ' v'
, @23 Varchar(2)= ' w'
, @24 Varchar(2)= ' x'
, @25 Varchar(2)= ' y'
, @26 Varchar(2)= ' z';
Set @text=' '+@text
Select LTrim(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Lower(@text) ,
@1 , Upper(@1)) ,
@2 , Upper(@2)) ,
@3 , Upper(@3)) ,
@4 , Upper(@4)) ,
@5 , Upper(@5)) ,
@6 , Upper(@6)) ,
@7 , Upper(@7)) ,
@8 , Upper(@8)) ,
@9 , Upper(@9)) ,
@10 , Upper(@10)) ,
@11 , Upper(@11)) ,
@12 , Upper(@12)) ,
@13 , Upper(@13)) ,
@14 , Upper(@14)) ,
@15 , Upper(@15)) ,
@16 , Upper(@16)) ,
@17 , Upper(@17)) ,
@18 , Upper(@18)) ,
@19 , Upper(@19)) ,
@20 , Upper(@20)) ,
@21 , Upper(@21)) ,
@22 , Upper(@22)) , @23 ,
Upper(@23)) , @24 , Upper(@24)) ,
@25 , Upper(@25)) , @26 , Upper(@26)));
end