13

FirstNameand を結合しLastNameて 1 つの列にまとめ'FULL NAME'、SQL で LIKE を使用して検索したいと考えています。

例 1:

ファーストネーム: ミラン
ラストネーム: パテル

本名:ミラン・パテル

次で検索:Like '%SomeText%'

例 2:

タイトル: 「会議: 仕事の実用的な代替手段」。

検索: 指定された文字列内の単語全体を検索したいと思います。例: 仕事は上記のタイトルを返す必要があります。

これが私がこれまでに持っているものです。

SELECT 
    CE.Title, CC.FirstName + ' ' + CC.LastName AS FullName
FROM 
    EntryTable CE
JOIN 
    UserTable CC ON CE.EntryId = CC.USerId
WHERE 
    CC.FirstName LIKE 'n%'

編集

私はゆっくりとそこに着いています。検索はこのクエリで正常に機能しています。

    SELECT 
     CE.Title 
    FROM 
     EntryTable CE
    JOIN 
     UserTable CC
    ON 
     CE.EntryId = CC.USerId
    WHERE 
     CC.FirstName  + ' ' + CC.LastName LIKE 's%'

しかし、それはで始まる名前のみを検索し's'ます。名前の開始、終了、条件も含めて検索したいと思います。どうすればそれについて行くことができますか。助けてください

4

6 に答える 6

20

LIKE以下のように、連結された列の値で使用できます

WHERE 
  CC.FirstName + ' ' + CC.LastName LIKE 's%'

しかし、「s」で始まる名前のみを検索します。名前の開始、終了、条件も含めて検索したいと思います。どうすればそれについて行くことができますか。助けてください

次に%、以下のように検索文字列の前後に使用する必要があります

WHERE 
  CC.FirstName + ' ' + CC.LastName LIKE '%s%'
于 2013-06-14T09:34:29.057 に答える
6

連結を使用できます

   SELECT CE.Title, concat(CC.FirstName , ' ' , CC.LastName) AS FullName
   FROM EntryTable CE
  JOIN UserTable CC
  ON CE.EntryId = CC.USerId
  WHERE 
  concat(CC.FirstName , ' ' , CC.LastName) LIKE 'n%'
  OR  CC.FirstName LIKE 'n%' OR  CC.FirstName LIKE '%n'
  OR  CC.LastName LIKE 'n%'  OR CC.LastName LIKE '%n'
                        ^^--// (1).   ^^--// (2) 

(1) 検索する文字列の最初に含まれる姓を検索します。

(2) 検索する文字列の末尾にある姓を検索します。

(3) 文字列の途中で姓を検索するには、この '%n%' を実行します

于 2013-06-14T09:34:16.023 に答える
5

SQL の操作順序では、句は句の前に実行されるためALIAS、句で the を使用することはできません。WHEREWHERESELECT

完全な連結をより適切に使用するのはWHERE句です

WHERE CC.FirstName + ' ' + CC.LastName LIKE 'n%'

それを使用したくない場合は、クエリをサブクエリでラップしてALIAS、、

SELECT *
FROM
(
   SELECT CE.Title, CC.FirstName + ' ' + CC.LastName AS FullName
   FROM   EntryTable CE JOIN UserTable CC
          ON CE.EntryId = CC.USerId
) sub
WHERE sub.FullName LIKE 'n%'
于 2013-06-14T09:35:23.253 に答える
1

2 つの % 記号を使用して、WHERE 句でもそれらを結合します。

于 2013-06-14T09:33:23.383 に答える