在不使用LIKE运算符的情况下查找整个值

时间:2012-12-13 05:51:50

标签: sql sql-server sql-server-2008

我在表格中找到了很多数字。但只有一小部分给我找到整数。我正在寻找一些新的方法来找到这些,而不使用like运算符。我知道这很简单,但我需要一种新方法。

  • 给出的值是:4213076600
  • 要查找的值是:89013106904213076600

我想在以下查询中找到它:

SELECT  * 
FROM    table_name 
WHERE   column_name in (value,value,value) 

我搜索了网站,并了解了左()和右()函数,但不知道如何安排它们来获得结果

4 个答案:

答案 0 :(得分:2)

您可以使用CONTAINS more info

SELECT *
FROM table_name 
WHERE CONTAINS(column_name , '"*value*"')

对于CONTAINS,您需要创建FULL TEXT INDEX on the table

答案 1 :(得分:0)

SELECT
    *
FROM
    table_name
WHERE
    CHARINDEX(value1,column_name)>0
    OR CHARINDEX(value2,column_name)>0
    OR CHARINDEX(value3,column_name)>0

答案 2 :(得分:0)

DECLARE @table table (n varchar(20))
DECLARE @param1 varchar(20)

SET @param1 = '4213076600'

INSERT INTO @table (n)
SELECT '89013106904213076600'

SELECT n 
FROM @table
WHERE RIGHT(n, len(@param1)) = @param1

修改

select * 
from table_name 
where right(column_name, len(value)) = value

答案 3 :(得分:-1)

SELECT left(column_name,length_of_value)
FROM   table_name
WHERE  RIGHT(column_name,length_of_value_given) IN (value,value,value)

这适用于IN子句