Есть ли способ в SQL Server ранжировать строки на основе значений в предложении WHERE
?Рейтинг SQL Server Query results
Например:
SELECT *
FROM Foo
WHERE
Bar1 = true AND
Bar2 = true OR
Bar3 = false
Лучший результат в этом случае будет строка, где Bar1 = верно, BAR2 = истинным и Bar3 = ложь. Строка, где Bar1 = true, Bar2 = true и Bar3 = true, будет меньше, потому что Bar3 отличается.
Сделать это еще сложнее. Предложение WHERE является динамическим, я точно не знаю, какие столбцы появятся в запросе. Таким образом, следующий запрос может быть:
SELECT *
FROM Foo
WHERE
Bar1 = false OR
Bar3 = true OR
Bar4 = True
Как я могу применить ранжирование к этим запросам?
Можно ли это сделать в рамках запроса или лучше сделать это на C#?
Вы Апи в 'WHERE', что значит вы хотите, чтобы исключить строки? Если да, то какие строки вы хотите сохранить и какие столбцы вы хотите группировать? Можете ли вы предоставить образцы данных и желаемый результат? –