2016-07-21 4 views
0

SQL Server Management Studio姓が "L"で始まる従業員を一覧表示する

姓が "L"で始まる従業員をリストします。名と姓の両方がemployeenameという同じ列に表示され、姓は2番目の単語です。

これは私が思い付いたものですが、最初の単語だけであるため、最初の名のために働く:

SELECT employeename 
FROM employee_T 
WHERE employeename LIKE 'L%' 

それでは、私はそれを動作させるために追加することができますか?そして、あなたがする必要があるすべてはあなたのLIKE条件にスペースを追加することです

FirstName LastName 

:あなたはこのようになります一致するすべてのエントリと仮定すると、

+0

「Robin hood」がemployeenameに存在する値であると仮定すると、robinが私のファーストネームになり、フードが姓になります。 plzはいくつかの入力データと出力を与えます – Smart003

答えて

1

SELECT employeename 
FROM employee_T 
WHERE employeename LIKE ' L%' 

のデータの一部であれば1つの名前または3つの名前しか持たない場合は、すべての賭けは上記のためにオフになります。

+0

興味深いことに、SQL Serverでは、これは 'employeename LIKE '%L%'、つまりスペースの前のワイルドカードである必要があります。 – onedaywhen

+0

@onedaywhenだから私の答えは、期待どおりSQL ServerではMySQLで動作すると言っているのですか?いずれの場合でも、SQL Serverソリューションは、 'L'より前の複数のスペースにマッチします。これは望ましくない可能性があります。 –

+0

SQL Serverでは、最初の文字がスペースで、2番目の文字が「L」の値のみが一致します。 '{space} London'にはマッチしますが、' Jack {space} London'にはマッチしません。私はMySQLがどのように動作するのかわかりませんが、それが違うと私は驚いています(ただし軽度!) – onedaywhen

4

は、あなたはそれがあることを' ''L%'意味を追加することができ、前の単語の後:

select employeename 
from employee_T 
where employeename LIKE ' L%' 

あなたが2つの以上の単語

またはsubstringを使用してレコードを持っている場合、このオプションは機能しません最後のインデックスは' 'であり、

またはこれを使用して名前の最後の部分を取得し、希望するものと比較してください:

select employeename 
from employee_T 
where SUBSTRING_INDEX(employeename, ' ', -1) LIKE 'L%' 
+1

これはもちろん正解です。あなたが "James Earl Jones"のような名前を持っている場合、単純な正規表現マッチは 'RTRIM(employeename)REGEXP 'L [^] + $''(大文字と小文字を区別しません)です。 – jirka

関連する問題