我正在尝试创建一个查询,该查询返回一个表中的值,该表以字母A-Z作为第一个字符开头,后面只跟着数字。
示例:
[table].Code
:
0056
A0089
X0023
J0F5
09AG
A91234671
A945353B
查询将返回以下结果:
A0089
X0023
A91234671
非常感谢任何帮助,谢谢。
答案 0 :(得分:3)
您可以使用[A-Z]
检查第一个字符,ISNUMERIC
检查除第一个字符之外的所有字符是否为数字:
SELECT Code
FROM mytable
WHERE LEFT(Code,1) LIKE '[A-Z]' AND ISNUMERIC(RIGHT(Code, LEN(Code)-1)) = 1
修改强>
正如ISNUMERIC
字段中包含Code
,+
这样的字符,如@Dan -
的评论中所述,可能无法为您提供所需的结果。你可以试试这个:
SELECT Code
FROM mytable
WHERE LEFT(Code,1) LIKE '[A-Z]' AND
RIGHT(Code, LEN(Code)-1) NOT LIKE '%[^0-9]%'
答案 1 :(得分:0)
您可以将like
与模式匹配结合使用。对于代码的第一个字符,[A-Z]
将匹配A
Z
之间的任何值。如果您还希望匹配小型大写字母,则可以在查询中包含[a-z]
SELECT
Code
FROM
tablename
WHERE
LEFT(Code,1) LIKE '[A-Z]%'
答案 2 :(得分:0)
使用模式匹配
select * from table where left(code,1) like '[a-Z][a-Z]%'