-3

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

  • 给出的值为: 4213076600
  • 寻找的价值是: 89013106904213076600

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

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

我已经在网站上搜索了这个并了解了 left() 和 right() 函数,但不知道如何安排它们以获得结果

4

4 回答 4

2

您可以使用CONTAINS 更多信息

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

因为CONTAINS你需要FULL TEXT INDEX 在桌子上创建一个。

于 2012-12-13T06:31:06.840 回答
0
SELECT
    *
FROM
    table_name
WHERE
    CHARINDEX(value1,column_name)>0
    OR CHARINDEX(value2,column_name)>0
    OR CHARINDEX(value3,column_name)>0
于 2012-12-13T05:56:27.193 回答
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
于 2012-12-13T06:04:31.983 回答
-1
SELECT left(column_name,length_of_value)
FROM   table_name
WHERE  RIGHT(column_name,length_of_value_given) IN (value,value,value)

这就是它适用于IN条款的方式

于 2012-12-13T06:51:21.180 回答