Aracılığıyla paylaş


Arama koşullarını'içinde eşleşen bir desen

LIKE anahtar karakteri arar dize, tarih veya saat belirli bir desenle eşleşen değerler.Daha fazla bilgi için bkz:(Transact-SQL) veri türleri.LIKE anahtar değerleri karşı eşleştirilmiştir deseni içeren normal bir ifade kullanır.Desen karakteri içeren dize aramak için dört joker karakter birleşimini içerebilir.

Joker karakter

Anlamı

%

Sıfır veya daha fazla karakterli herhangi bir dize.

_

Herhangi bir tek karakter.

[ ]

Herhangi bir tek karakter belirtilen aralıktaki (örneğin, [a-f]) veya küme (örneğin, [abcdef]).

[^]

Herhangi bir tek karakter belirtilen aralıkta değil (örneğin, [^ a - f]) veya (örneğin, [^ abcdef]).

Joker karakter ve karakter dizesi Örneğin tek tırnak işaretleri içine alın:

  • 'Mc %' için arama yapar (McBadden) MC harflerle başlayan tüm dizeler.

  • LIKE, '% inger' arar ve tüm dizeleri, harfler inger (Etikan, Stringer) ile sonlandırın.

  • LIKE tüm dizeler 'tr %' arar, harfler tr herhangi bir dize (Bennet, yeşil, McBadden) içerir.

  • LIKE '_heryl' harfler heryl (Cheryl, Sheryl) ile biten tüm harfi altı adlarını arar.

  • '[CK] [eo] ars n' arar Carsen Karsen, Carson ve Karson (Carson).

  • '[M-Z] inger' LIKE başlayan harfleri inger ile biten tüm adları herhangi tek bir Harf M-Z (Etikan)'dan arar.

  • LIKE 'M [^ c] % ' harfi c ikinci harfi (MacFeather) olan a harfi ile başlayan tüm adları arar.

Tüm telefon numaralarını aşağıdaki sorgu bulur Contact alan koduna sahip bir tablo 415:

SELECT Phone
FROM AdventureWorks.Person.Contact
WHERE Phone LIKE '415%'

Kullanabileceğiniz NOT LIKE ile aynı joker karakter. Tüm telefon numaralarını bulmak için Contact alan kodları dışında olan tablo 415, eşdeğer bu sorguları birini kullanın:

SELECT Phone
FROM AdventureWorks.Person.Contact
WHERE Phone NOT LIKE '415%'

-- Or

SELECT Phone
FROM AdventureWorks.Person.Contact
WHERE NOT Phone LIKE '415%'

The IS NOT NULL yan tümce can be used with wildcards and the LIKE yan tümce. Örneğin, aşağıdaki sorgu, telefon numaraları alır Contact telefon numarası ile başlayan tablo 415 ve IS NOT NULL:

USE AdventureWorks;
GO
SELECT Phone
FROM Person.Contact
WHERE Phone LIKE '415%' and Phone IS NOT NULL
Important noteImportant Note:

LIKE anahtar içeren tablolar için çıktı, sıralama düzeni, yükleme sırasında seçilen bağlıdır.Farklı sıralama düzenleri etkileri hakkında daha fazla bilgi için bkz: Harmanlamalar ile çalışma.

Yalnızca, kullanabileceğiniz WHERE koşulları text IS NULL veya PATINDEX LIKE, sütunları olur.

LIKE kullanılan joker karakterler olarak kendi değerlerini yalnızca temsil ettikleri olan bir desen yerine sabit olarak yorumlanır.Dört karakterlerinden tüm telefon numaralarını bulmak aşağıdaki sorgu çalışır. 415% veritabanı. Ile başlayan ve telefon numaralarını bulamaz 415. Sabitler hakkında daha fazla bilgi için bkz: Sabit (Veritabanı Altyapısı).

SELECT Phone
FROM AdventureWorks.Person.Contact
WHERE Phone = '415%'

Joker karakterleri kullanarak bir başka önemli dikkate, kendi performans etkisi olur.Joker karakter ifade başlarsa, dizin kullanılamıyor.(Yalnızca siz bir telefon adı '% mith',. 'Etikan' verildiyse rehberi başlayacağınızdan bilmez.) Joker karakter olarak veya bir ifade sonunda dizin kullanımını engelleyen. (Yalnızca bir telefon rehberi gibi ad 'Samuels ve Samuelson adlarının her ikisi de varsa olduklarına bakılmaksızın Samuel %','ise, aranacak yeri biliyor.)

Joker karakterler için aranıyor

Joker karakterler için arama yapabilirsiniz.Normalde bir joker karakter olarak bir karakter belirtmek için iki yöntem vardır:

  • Çıkış karakteri olarak tanımlamak için ESCAPE'E anahtar sözcüğünü kullanın.Çıkış karakterini joker karakter desendeki önünde yerleştirildiğinde, joker karakter olarak yorumlanır.Örneğin, dizesi aramak için 5% bir dizede herhangi bir yeri olarak kullanın:

    WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
    

    Bu LIKE yan tümce önünde ve bitiş yüzde (imzalar.%) joker karakterleri yorumlanır ve yüzde işareti öncesinde bir eğik çizgi () ile/) % karakter olarak yorumlanır.

  • Köşeli ayraç () kullanın.[ ]) joker karakter kendi içine. Bir kısa çizgi () için arama yapmak için-), bu arama aralık belirtmek için kullanmak yerine bir ayraç içindeki ilk karakteri olarak tire işareti kullanın:

    WHERE ColumnA LIKE '9[-]5'
    

    Aşağıdaki tabloda, köşeli parantezler içine bir joker karakter kullanımını göstermektedir.

    Simge

    Anlamı

    '[%] 5' GİBİ

    5%

    % 5 ' BENZER '

    0 veya daha fazla karakter herhangi bir dize izleyen 5

    '[_] N'

    _n

    '_N '

    bir, içinde açık (ve böyle devam eder)

    '[A-cdf]'

    a, b, c, d veya f

    LIKE ' [-acdf] '

    -, a, c, d veya f

    '[' GİBİ

    [

    BENZER '] '

    ]

Ne zaman Desen dizesindeki tüm karakterler (boşluk) her baştaki ve sondaki boş gibi önemli LIKE, dize karşılaştırmaları ile gerçekleştirilir.'Abc' (tek bir boşluk ve ardından abc) LIKE dize içeren tüm satırları geri dönmek için bir karşılaştırma istendiyse, sütunun değeri abc (bir boşluk bırakmazsanız abc) olduğu satır döndürülür.Tersi, ancak doğru değil.Boşluk, sondaki ifade deseni, eşleşmesi için dikkate alınmaz.'Abc' (bir boşluk bırakmazsanız abc) LIKE dize içeren tüm satırları geri dönmek için bir karşılaştırma istendiyse, abc ile başlatın ve sıfır veya daha çok sonunda boşluklar olan tüm satır döndürülür.