Locate the uppercase characters in the SQL Server database field

I need to find rows in a database table that have a field with an uppercase value.

E.g.: select * from Cust where Surname like 'COnTAiNS UpPERcASE VaLUeS'

Any help would be appreciated.

Aj

+5
source share
4 answers

You can do a binary comparison using:

select *
from Cust
where cast(Surname as varbinary(120)) != cast(lower(Surname) as varbinary(120))
+13
source

Another way

SELECT *
FROM Cust
WHERE Surname NOT LIKE '%[^A-Z]%' COLLATE Latin1_General_BIN
+3
source

- :

SELECT 
 CASE WHEN BINARY_CHECKSUM('yourStriNg') = BINARY_CHECKSUM(LOWER('yourStriNg')) 
     THEN 0 
     ELSE 1 
 END

....

SQL

+1

, :

Declare @Val Varchar(100)
Set @Val='MicrosoftAsp.NeT4You'

--Return Val
Declare @RetCapWord varchar(100)
Set @RetCapWord=''

;WITH CTE AS
(
    Select @Val As oldVal,1 As TotalLen,SUBSTRING(@Val,1,1) As newVal,
    ASCII(SUBSTRING(@Val,1,1)) As AsciVal

    UNION ALL

    Select oldVal,TotalLen+1 As TotalLen,
    substring(@Val,TotalLen+1,1) As newVal,
    ASCII(SUBSTRING(@Val,TotalLen+1,1)) As AsciVal
    From CTE
    where CTE.TotalLen<=LEN(@Val)
)
Select @RetCapWord=@RetCapWord+newVal
From CTE
Inner Join master..spt_values as m on CTE.AsciVal=m.number and CTE.AsciVal between 65 and 90

Select @RetCapWord
0

All Articles