varchar的第一个字符是字符串吗?

时间:2017-09-07 01:13:55

标签: sql sql-server

如何实现以下显示ClientNumber的第一个字符不是字母表字母的所有行?

select * from Table
where Left(ClientNumber,1) <> A to Z

3 个答案:

答案 0 :(得分:3)

您可以这样做:

700%

或:

where left(clientNumber, 1) < 'A' or left(clientNumber, 1) > 'Z'

但请注意,由于特征情况,比较会很棘手。假设1字节字符,您可能需要:

where left(clientNumber, 1) not between 'A' and 'Z'

编辑:

如果我想使用索引:

where ascii(left(clientNumber, 1)) not between ascii('A') and ascii('Z')

但是,我不太确定索引在这种情况下是否真的有用。

答案 1 :(得分:3)

您可以使用NOT LIKE:

SELECT * 
FROM Table
WHERE ClientNumber NOT LIKE '[A-Za-z]%'

答案 2 :(得分:0)

尝试这样......

SELECT 
    *
FROM
    dbo.MyTable mt
WHERE 
    mt.ClientNumber LIKE '[^a-Z]%'