2012-04-04 59 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