SQL查询以呈现忽略特殊字符的类似结果

时间:2018-01-10 09:18:36

标签: mysql sql sql-server database

有人可以建议我一个可以实现以下目标的SQL查询: 特殊字符., _' '应列出相同的结果。

示例:

如果您搜索123_456,系统还应该找到123456123.456以及12_3456123456.7以及_123.456

如果您搜索12345,系统也应找到123_456

2 个答案:

答案 0 :(得分:1)

使用REPLACE并包含所有特殊字符。试试这个

SELECT * FROM tablename WHERE 
REPLACE(REPLACE(REPLACE(columname,'_',''),'.',''),',','')  LIKE '%123456%'

答案 1 :(得分:0)

我会替换所有字符,将其转换为INT并过滤FilterCol。

WITH CTE AS 
(
  SELECT CAST (REPLACE (REPLACE (ColA, '-', ''), '.', '') AS INT) AS 
  FilterCol, ColA
  FROM TableA
)

SELECT * FROM CTE WHERE FilterCol >= 0