Попытка создать хранимую процедуру, которую я могу использовать для поиска людей по имени и фамилии. Fname и Lname хранятся вместе в двух разных таблицах, которые хотят извлечь из Table1
, и если нет совпадения, то вытащите из Table2
результаты.Вытягивание результатов из двух таблиц, если первая таблица не соответствует
@FName VARCHAR(20) = NULL
@LName VARCHAR(20) = NULL,
SELECT TB1.ID, TB1.FName, TB1.LName
FROM Table1 TB1
LEFT JOIN Table2 TB2
ON TB1.ID = TB2.ID
WHERE 1=1
AND COALESCE(TB1.Fname, '') LIKE '%' + REPLACE(COALESCE(@FName, TB1.Fname, ''), ' ', '%') + '%'
AND COALESCE(TB1.Fname, '') LIKE '%' + REPLACE(COALESCE(@LName, TB1.Fname, ''), ' ', '%') + '%'
То, что я пробовал до сих пор, было таким, и оно, кажется, оттягивает все записи.
WHERE 1=1
AND COALESCE(TB1.Fname, '') LIKE '%' + REPLACE(COALESCE(@FName, TB1.Fname, ''), ' ', '%') + '%'
OR COALESCE(TB2.Fname, '') LIKE '%' + REPLACE(COALESCE(@FName, TB2.Fname, ''), ' ', '%') + '%'
AND COALESCE(TB1.Lname, '') LIKE '%' + REPLACE(COALESCE(@LName, TB1.Lname, ''), ' ', '%') + '%'
OR COALESCE(TB2.Lname, '') LIKE '%' + REPLACE(COALESCE(@LName, TB2.Lname, ''), ' ', '%') + '%'
Любая помощь или руководство будет благодарен, я имею Google за последний день или около того, но я предполагаю, что я не тот прибегая к помощи вещей.
Возможно, вы захотите переместить условия WHERE в предложение ON. – jarlh