web-dev-qa-db-ja.com

SQL Serverの "LIKE"と "IN"の組み合わせ

SQL ServerクエリでLIKEINを組み合わせることは可能ですか?

だから、このクエリ

SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')

これらの可能な一致のいずれかを見つけます。

Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness

等...

203
Florian Peschka

事実上、IN文は一連のOR文を作成します。

SELECT * FROM table WHERE column IN (1, 2, 3)

効果的です

SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3

そして悲しいことに、それはあなたがあなたのLIKEステートメントと一緒にとるべきルートです。

SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
230
Fenton

私はこれが古いことを知っていますが、私は一種の実用的な解決策を得ました

SELECT Tbla.* FROM Tbla
INNER JOIN Tblb ON
Tblb.col1 Like '%'+Tbla.Col2+'%'

これは私が探していたものであり、私はそれを行う方法を考え出さなければならなかったので、私はこれに答えました。

181
lloydz1

もう1つの選択肢は、このようなものを使うことです。

SELECT  * 
FROM    table t INNER JOIN
        (
            SELECT  'Text%' Col
            UNION SELECT 'Link%'
            UNION SELECT 'Hello%'
            UNION SELECT '%World%'
        ) List ON t.COLUMN LIKE List.Col
101
Adriaan Stander

いいえ、ORステートメントを組み合わせるにはLIKEを使用する必要があります。

SELECT 
   * 
FROM 
   table
WHERE 
   column LIKE 'Text%' OR 
   column LIKE 'Link%' OR 
   column LIKE 'Hello%' OR
   column LIKE '%World%'

全文検索 を見ましたか?

9
Mitch Wheat

ORで接続された複数のLIKE句が必要です。

SELECT * FROM table WHERE 
column LIKE 'Text%' OR 
column LIKE 'Link%' OR 
column LIKE 'Hello%' OR 
column LIKE '%World%' OR 
7
Eric J.

いいえ、MSSQLはそのようなクエリを許可しません。 col LIKE '...' OR col LIKE '...'などを使うべきです.

3
Andrew Lygin