2011-04-26 296 views
3

我必须选择包含特定文本并以",',)或空格字符结尾的所有字段,或者将此文本放在字符串末尾。Sql LIKE语句。字符串结尾

所以,我需要类似的东西:

select * 
from MyTable 
Where Column1 like '%' + @text + '["'') ]%' 

直到文本未放置在Column1结束此查询工作正常。

+0

你可以给一些简单的输入和所需的输出? – timbooo 2011-04-26 12:26:28

+0

你的问题是什么? – Skrol29 2011-04-26 12:30:18

回答

5

你可以使用

Where Column1 + '"' like '%' + @text + '["'') ]%' 
+0

谢谢,我会用你的代码。 – Egor4eg 2011-04-26 12:41:06

0

这应该工作更好更快:

SELECT * FROM MyTable 
WHERE 
    ((RIGHT(Column1,1) IN (' ', '"', '''', ')')) 
    AND 
    (SUBSTRING(Column1, LENGTH(@text)-1, LENGTH(@text))[email protected]) 
    ) 
OR (RIGHT(Column1, LENGTH(@text))[email protected]) 
+0

OP正在查找文本位于字符串中间,但后面跟着字符串右侧的指定字符**或**之一的情况。 – 2011-04-26 12:31:09

+0

@Martin:正确,我通过信息修复 – Skrol29 2011-04-26 13:38:01

0

为什么不试试OR?

Where Column1 like '%' + @text + '["'') ]%' 
    or 
    Column1 like '%' + @text + '["'') ]' 

还是我误解了要求?你的问题有点难以遵循。

0
SELECT * 
FROM MyTable 
WHERE Column1 LIKE '%' + @text + '%["'') ]' 
     OR Column1 LIKE '%' + @text