SQL查询在字符串中搜索

时间:2014-12-05 16:35:40

标签: sql sql-server

我的数据库中有一列数据,其中包含一个项目编号,编号格式为YYYYnnnn.ee(例如20140124.00)。由于该数字有三个不同的部分,因此用户可以通过YYYY或nnnn进行搜索。我写了一个按YYYY搜索的查询。我需要为nnnn编写一个查询。

如何编写查询以搜索另一个字符串的特定位置中的特定字符串?

1 个答案:

答案 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')