-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 に答える