我的数据库中有一列数据,其中包含一个项目编号,编号格式为YYYYnnnn.ee(例如20140124.00)。由于该数字有三个不同的部分,因此用户可以通过YYYY或nnnn进行搜索。我写了一个按YYYY搜索的查询。我需要为nnnn编写一个查询。
如何编写查询以搜索另一个字符串的特定位置中的特定字符串?
答案 0 :(得分:2)
您可以使用SUBSTRING。
SUBSTRING的第一个参数应该是columname,下一个参数是起始字符的索引,最后一个参数是字符数。
以下示例将从您的列返回nnnn部分。在下面的示例中,我们将搜索nnnn等于1234的记录。
SELECT *
FROM tablename
WHERE
(SUBSTRING(columnName, 5, 4) = '1234')
请注意,如果您的列是数字(十进制)。您需要先将其转换为varchar(字符串)。例如:
SELECT *
FROM tablename
WHERE
(SUBSTRING(CAST(columnName AS VARCHAR(20)), 5, 4) = '1234')