我有一个Access SQL查询,其中包含对
等文本的选择SELECT column FROM table WHERE column LIKE "abc#####";
其中要查找的值的字符串长度为8个字符,以“abc”开头,以5个数字结尾。
我正在尝试将其转换为varchar列上的SQL Server(2005)查询,并首先想出这个:
SELECT column FROM table WHERE column LIKE 'abc_____';
但当然这与最后5个字符中的非数字值匹配。所以我一直在使用以下内容:
SELECT column FROM table WHERE column LIKE 'abc[0-9][0-9][0-9][0-9][0-9]';
这有效,但有没有更有效/可接受的方式来处理这种类型的选择? (是否有另一个特殊字符的作用类似于下划线_
但是对于数字?)
答案 0 :(得分:1)
DECLARE @pattern varchar(max) = 'abc#####'
SET @pattern = REPLACE(@pattern,'#','[0-9]')
SELECT column FROM table WHERE column LIKE @pattern
答案 1 :(得分:0)
试试这个:
SELECT column FROM table
WHERE substring(column, 1, 3) = 'abc'
AND substring(column, 4, LEN(column)-3) NOT LIKE '%[^0-9]%'
<强>参考强>: