SQL搜索查询,搜索字符串省略空格并转换为小写

时间:2013-09-02 20:39:02

标签: sql search format

我的措辞可能不正确,因此解决方案可能在此网站上。在这种情况下,指向我的解决方案将是伟大的。无论如何,我正在进行搜索,需要对列中的字符串和值进行比较。它必须超越LIKE。例如,我想把列放在小写字母中并取出所有空格,然后再将它与字符串进行比较(它也是小写的,并且所有空格都消失了)。我想这样做而不修改列的内容。所以只是为了比较。然后,如果比较计算结果为true,则将原始内容从列中取出(不是小写,也不是空格形式)。这可能是具体的。是否可以这样做,如果是这样,任何代码示例都会有所帮助。所以我现在有这样的事情:

SELECT *
FROM [MY_TABLE]
WHERE (
       [MY_COLUMN] LIKE My_Search_String
      )

所以My_Search_String已经格式化了。我只需要格式化[MY_COLUMN]而不必永久修改其内容。任何帮助表示赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

如果您的默认排序规则或列排序规则区分大小写,则大写和小写只会有所不同。无论如何,你似乎想要:

SELECT *
FROM [MY_TABLE]
WHERE lower(replace([MY_COLUMN], ' ', '')) LIKE lower(replace(My_Search_String, ' ', ''))

答案 1 :(得分:1)

我认为以下查询将解决您的问题。!

IF EXISTS(select * from [MY_TABLE] where LOWER(REPLACE([MY_COLUMN],' ','')) like 'My_Search_String')

     INSERT INTO Another_Table
     select * from [MY_TABLE] where LOWER(REPLACE([MY_COLUMN],' ','')) like  'My_Search_String'