2016-06-15 16 views
0

Wahrscheinlich eine sehr grundlegende Frage. Ich habe zwei Tabellen (SQL Server 2012) Ereignisse und Benutzerdetails. Die erste Tabelle hat eine Spalte mit Benutzernamen, die 'xyz' sagen. Der zweite hat eine Spalte mit Benutzeranmeldungen 'xyz', 'xyz-a', 'xyz-b' usw. alle mit denselben Benutzer-IDs.Übereinstimmen von zwei Spalten mit gemeinsamen Werten und Abrufen ähnlicher Werte

Wenn der Benutzer mit Suffix in der zweiten Tabelle vorhanden/abwesend ist, müssen einige Flags entsprechend gesetzt werden. Wie kann es abgerufen werden?

Vielen schätzen jede Hilfe. Danke vielmals !!

+0

Wie kann was abgerufen werden? Vielleicht 'SELECT * FROM [Benutzerdetails] WHERE column_name LIKE' xyz-% ' –

+0

Wie kann was abgerufen werden? Vielleicht 'SELECT * FROM [Benutzerdetails] WHERE column_name LIKE' xyz -% '' –

Antwort

1

Sie mögen in Joinbedingung und CONCAT verwenden können

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

Wenn die „-“ ist immer das Trennzeichen in der zweiten Tabelle, die Sie unten tun können. Die case-Anweisung betrachtet zuerst, ob das "-" in der Zeichenfolge vorhanden ist, es sieht nur auf der linken Seite des Bindestrichs aus, wenn das Bindestrich nicht vorhanden ist, dann schaut es sich die gesamte Anmeldung an.

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