sql >> データベース >  >> RDS >> Sqlserver

SQLServerのLIKE論理演算子とは-SQLServer/TSQLチュートリアルパート123

    LIKE論理演算子とは:

    LIKE論理演算子は、オペランドがパターンに一致する場合に行を返したい場合に使用されます。 Like演算子は、オペランドがパターンに一致する場合にTRUEを返します。


    場合によっては、等しいまたは等しくない代わりにパターンマッチングを実行する必要があります。 Likeは、特定の文字列が指定されたパターンに一致する場合に行を返したい場合に使用されます。パターンは、通常の文字とワイルドカード文字の組み合わせにすることができます。
    行を戻すには、通常の文字が文字列で指定された文字と完全に一致する必要があります。ワイルドカード文字は、文字列の任意の部分と一致させることができます。

    dbo.Customerテーブルを作成してから、リアルタイムの例をいくつか作成しましょう

    Create table dbo.Customer
     (Id int,
      FName VARCHAR(50),
      LName VARCHAR(50),
      CountryShortName CHAR(2))
    GO
    insert into dbo.Customer
    Values (
    1,'Raza','M','PK'),
    (2,'Rita','John','US'),
    (3,'Sukhi','Singh',Null),
    (4,'James','Smith','CA'),
    (5,'Robert','Ladson','US'),
    (6,'Alice','John','US'),
    (7,'Raza','M','US'),
    (8,'Dita','M','US'),
    (9,'Adita','M','US')
     
    1)%を使用
    FNameに「i」が含まれているすべての行を検索するとします。以下のクエリを使用できます

    Select * From dbo.Customer
    where FName like '%i%'
     
    SQL ServerでLike演算子を使用して%を使用する方法-SQL Server/TSQLチュートリアル
     












    「i」の前後に%を使用することで、FNameに「i」文字が含まれ、「i」の前後に他の文字が何であるかは関係ないすべての行を検索するようにクエリに指示していることに注意してください。


    2)_(アンダースコア)を使用する
    アンダースコアは、任意の1文字をチェックし、残りの文字を一致させる場合に使用できます。 FNameの最初の文字が何でもよいすべての行を検索したい場合、残りの行は「ita」である必要があるとしましょう。以下のクエリを使用できます。

    Select * From dbo.Customer
    where FName like '_ita'
    SQL ServerのLike演算子でアンダースコア(_)を使用する方法-SQL Server/TSQLチュートリアル
      3)[]の使用-指定された範囲[a-t]またはセット[abc]内の任意の1文字 
    範囲が必要な場合は、[]付きのlike演算子を使用できます。 FNameの最初の文字が[a-f]で始まるすべての行を検索するとします。以下のクエリを使用できます。

    Select * From dbo.Customer
    where FName like '[a-f]%'
     
    検索のためにSQLServerでRangwithLike演算子を使用する方法-SQLServer/TSQLチュートリアル
     ご覧のとおり、[a-f]%を使用しました。つまり、aからfまでの最初の文字が必要であり、その後は%を使用したので、どの文字でも問題ありません。

    4)[^]指定された範囲内にない単一の文字[a-t]または[abc]を設定します
    FNameの最初の文字が[aからf]で始まらないすべての行を検索したい場合を考えてみましょう。以下のクエリを使用できます。

    Select * From dbo.Customer
    where FName like '[^a-f]%'
     
    SQLServerのLike演算子で範囲外を使用する方法-SQLServer/TSQLチュートリアル
     
    a-fの文字で始まらない行のみが返されることに気づきました。


    FNameが含まないすべての行を取得したい場合は、 a、d、jで始まります。以下のクエリを使用できます。

    Select * From dbo.Customer
    where FName like '[^adj]%'
      

    ビデオデモ:SQLServerでLogicalLike演算子を使用する方法
     

    1. SQL ServerのSYSDATETIME()とGETDATE():違いは何ですか?

    2. カンマ区切り値を含む列の値

    3. GROUPBYを使用してSQLServerで文字列を連結するにはどうすればよいですか?

    4. SQL Serverのsys.objects、sys.system_objects、およびsys.all_objectsの違い