Если вы видите, что формат вашего поискового запроса совпадает с комбинацией firstname[space]lastname
, вы можете сделать что-то вроде следующего:
SELECT *
FROM Names
WHERE LEFT([Firstname] + ' ' + [lastname], LEN(@searchname)) = @searchname
Это позволит вам осуществлять поиск по длине вашего поискового имени. Пример того, как это может работать, приведен ниже:
CREATE TABLE Names
(
firstname NVARCHAR(100),
lastname NVARCHAR(100)
)
INSERT INTO Names VALUES
('John', 'Smith'), ('Jane', 'Doe'), ('Harry', 'Potter')
DECLARE @searchname NVARCHAR(100)
--John (Fist Name match only)
SET @searchname = 'John'
SELECT *
FROM Names
WHERE LEFT([Firstname] + ' ' + [lastname], LEN(@searchname)) = @searchname
--Jane D (First name + Initial Last name)
SET @searchname = 'Jane D'
SELECT *
FROM Names
WHERE LEFT([Firstname] + ' ' + [lastname], LEN(@searchname)) = @searchname
--H (Single character only in correct order)
SET @searchname = 'H'
SELECT *
FROM Names
WHERE LEFT([Firstname] + ' ' + [lastname], LEN(@searchname)) = @searchname