2011-04-26 290 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