SQL选择以大写字母开头的值

时间:2015-12-07 13:18:24

标签: sql sql-server

我有一个带varchar类型列的表。我想从此列中选择仅以大写字母开头的值。

例如

MyTable的

Col1          Col2

Argentina     2
Brasil        3
uruguay       4

我希望我的选择查询返回:

Argentina
Brasil

3 个答案:

答案 0 :(得分:16)

这有点痛苦。您可以使用ASCII()COLLATE,但这取决于数据的存储方式。对于varchar()char(),这将有效:

where ASCII(left(col1, 1)) between ASCII('A') and ASCII('Z')

答案 1 :(得分:0)

您可以使用UPPERCOLLATE功能执行此操作。

例如:

create table #a (text varchar(10))

insert into #a values ('HAI'),('Hai'),('hai'),('44A')

select *from #a where substring([text],1,1) = substring(Upper([text]),1,1) collate SQL_Latin1_General_CP1_CS_AS
                                            AND substring([text],1,1) like '[A-Z]%'

答案 2 :(得分:0)

 With TestData As
    (
    Select '012324' As Name
    Union All Select 'ABC'
    Union All Select 'abc'
    Union All Select 'aBc'
    Union All Select 'ABé'
    Union All Select 'ABÉ'
    )
Select *
 From TestData
Where Name = UPPER(Name) Collate SQL_Latin1_General_CP1_CS_AS

希望这会有所帮助