2012-04-04 36 views
0

我在我的數據庫中有一個數字,如99999,17299999,182317299999,我不想使用like '%99999'。模式是17_99999和18__17_99999。sql select語句使用模式而不是像

有什麼辦法可以用這種模式代替嗎? a.id ='17 _'+ b.id什麼的?

PS。我有60萬點的記錄..所以使用like很討厭

+0

如果您提供有關您的特定情況的更多信息,您將獲得更多詳細信息。 – 2012-04-04 14:12:59

+0

這就是我的確切情況......我必須根據該模式從表中選擇行 – pufos 2012-04-04 14:14:16

+0

您沒有說有一千六百萬行開始。核心問題很可能是具有這些字符的列實際上應該位於多個數據庫列中,然後可以正確地對其進行索引/搜索。你總是需要對6000萬行應用一個字符串操作。 – 2012-04-04 14:15:50

回答

0

我知道你說你不想使用Like但...

like使用下劃線或字符集支持單個字符的佔位通過使用[]集。

更多

另外,不要忘記,就像還支持使用變量見MSDN頁,

所以你可以做

declare @like varchar(200) 
set @like = '17_99999' 
select * from table where field like @like 

這將允許你建立您的@like變量與您描述的方式類似。

+0

你能解釋更多 – pufos 2012-04-04 14:08:44

+0

男人..使用像需要永遠..我有60萬條記錄 – pufos 2012-04-04 14:13:15