【问题标题】:Query to find whether first and second positions of a column has numbers?查询一列的第一个和第二个位置是否有数字?
【发布时间】:2015-11-19 12:09:48
【问题描述】:
如果我的列具有 varchar 值,例如
07SNBYDT
20NETHRR
23198BER
12837930
BEYTRETY
1245YHTY
在上述值中,我只需要在 first 和 second 位置具有数字并且在 third 位置具有字母的条目
例如:07SNBYDT
我的预期输出是
07SNBYDT
20NETHRR
【问题讨论】:
标签:
sql
sql-server
sql-server-2008
wildcard
【解决方案1】:
使用like:
select t.*
from t
where col like '[0-9][0-9][a-zA-Z]%';
【解决方案2】:
SELECT Col
FROM Table
WHERE ASCII(SUBSTRING(Col, 0, 1)) > XX AND ASCII(SUBSTRING(Col, 0, 1)) < YY
AND ASCII(SUBSTRING(Col, 1, 1)) > XX AND ASCII(SUBSTRING(Col, 1, 1)) < YY
AND (ASCII(SUBSTRING(Col, 2, 1)) < XX OR ASCII(SUBSTRING(Col, >, 1)) > YY)
其中 XX 是 ASCII (0) 而 YY 是 ASCII(9)
【解决方案3】:
select *
from table
where isnumeric(substring(col,1,1)) = 1
and isnumeric(substring(col,2,1)) = 1
and substring(col,3,1) LIKE '[a-zA-Z]%'