2016-06-15 10 views
0

おそらく非常に基本的な質問です。私は2つのテーブル(SQL Server 2012)を持っていますイベントユーザーの詳細。最初のテーブルには、ユーザーログインに「xyz」という列があります。 2番目の列には、すべて同じユーザーIDを持つユーザーログイン 'xyz'、 'xyz-a'、 'xyz-b'などを持つ列があります。共通の値を持つ2つの列を一致させ、類似の値をフェッチする

2番目の表にサフィックス付きのユーザーログインが存在する場合、それに応じていくつかのフラグを設定する必要があります。どのようにそれをフェッチすることができますか?

多くのご協力をいただきありがとうございます。どうもありがとう !! 「 - 」あなたは以下を行うことができます第二の表の区切り文字は常にあなたがのように使用することができます

+0

どのようにフェッチできますか?たぶん 'SELECT * FROM [ユーザーの詳細] WHERE column_name LIKE 'xyz-%' –

+0

フェッチする方法は?たぶん 'SELECT * FROM [ユーザの詳細] WHERE column_name LIKE 'xyz - %'' –

答えて

1

が条件とCONCAT場合

SELECT * FROM Events a INNER JOIN User_Details B ON a.userlogins LIKE CONCAT(B.username, '%'); 
0

に参加します。 case文は、最初に文字列に " - "があるかどうかを調べ、ダッシュの左側だけを調べ、ダッシュが存在しない場合はログイン全体を調べます。

SELECT * 
FROM 
    EventsTable E 
    JOIN UserDetailsTable U 
     ON E.LoginID = CASE WHEN CHARINDEX('-',U.LoginID) > 0 THEN LEFT(U.LoginID,CHARINDEX('-',U.LoginID)-1) ELSE U.LoginID END 
関連する問題