В основном у меня есть такая таблица:
CREATE TABLE Person(
PersonID int IDENTITY(1,1) NOT NULL,
FirstName nvarchar(512) NOT NULL,
LastName nvarchar(512) NULL
)
И мне нужно найти лучшие n результаты, основанные на запросе пользователя, подобном этому:
"Joh Smi"
Следующий запрос возвращает результаты, которые мне нужны (я думаю). Только не в соответствующем порядке.
SELECT
PersonID, FirstName, LastName
FROM
Person
WHERE
FirstName LIKE 'Joh%' OR
LastName LIKE 'Joh%' OR
FirstName LIKE 'Smi%' OR
LastName LIKE 'Smi%'
Если в базе данных были указаны следующие имена и наш пользовательский запрос был "Joh Smi", имена должны появляться в следующем порядке (или аналогично)
- Джон Смит
- Джонни Смит
- Джон Джейкоб
- Дэвид Смитсониан
- Даниэль Джонсон
Я надеюсь заставить его работать аналогично автозаполнению поиска друзей в Facebook.
Итак, как мне вернуть n самых важных строк в SQL Server 2008?