У меня есть пользовательская таблица в моей базе данных, которая содержит два столбца FirstName и LastName.
Теперь в моем интерфейсе есть текстовое поле для фильтрации пользователей из этой таблицы. Давайте предположим, что я принимаю этот ввод из внешнего интерфейса в виде входного параметра "@SEARCHKEYWORD" Я создал образец ниже:
DECLARE @Test TABLE
([ID] INT IDENTITY,
[FNAME] NVARCHAR(100),
[LNAME] NVARCHAR(100)
)
INSERT INTO @Test( FNAME, LNAME )
SELECT 'John','Resig' UNION ALL
SELECT 'Dave','Ward' UNION ALL
SELECT 'Peter','Smith' UNION ALL
SELECT 'Dave','Smith' UNION ALL
SELECT 'Girija','Acharya' UNION ALL
SELECT 'Devendra', 'Gujel' UNION ALL
SELECT 'Arjit', 'Gupta'
DECLARE @SEARCHKEYWORD NVARCHAR(100)
SELECT * FROM @Test WHERE FNAME +' '+ LNAME LIKE @SEARCHKEYWORD
т.е. до сих пор я думал об этом запросе, чтобы отфильтровать строки, но он не дает желаемых результатов:
<pre>
SELECT * FROM @Test WHERE FNAME +' '+ LNAME LIKE @SEARCHKEYWORD
Вот желаемые выходы, которые мне нужны для входов, упомянутых ниже:
</p>
<p>--WHEN @SEARCHKEYWORD='John Resig'
--Desired OUTPUT: the row which contains 'John','Resig' </p>
<p>--WHEN @SEARCHKEYWORD='Ac'
--Desired OUTPUT: the row which contains 'Girija','Acharya' </p>
<p>--WHEN @SEARCHKEYWORD='Smith'
--Desired OUTPUT: the row which contains 'Peter','Smith' and 'Dave','Smith'</p>
<p>--WHEN @SEARCHKEYWORD='g'
--Desired OUTPUT: the row which contains 'Devendra', 'Gujel' and 'Arjit', 'Gupta' </p>
<p>--WHEN @SEARCHKEYWORD='Smith'
--Desired OUTPUT: the row which contains 'Peter','Smith' and 'Dave','Smith'</p>
<p>