1
我有一個使用NHibernate的標準查詢機制動態編譯的搜索查詢。產生的SQL查詢可能類似於:如何根據where子句匹配來實現排名(沒有全文索引)
select
*
from
sometable
where
(
(
firstname like 'chris%' or
lastname like 'chris%'
)
and
(
firstname like 'vann%' or
lastname like 'vann%'
)
)
在表中的數據可能看起來像:
FirstName LastName
------------------------------
Chris Smith
John Vann
Chris Vann
我想訂結果,使得一排匹配的兩個子條款where子句(即firstname = Chris和lastname = Vann)的排名高於僅與其中一個子子句匹配的行。這是可能的標準SQL?
編輯:我大大簡化了問題,以回到問題的膽量。
我想過,但這種方法涉及一大堆adhoc(非參數化)SQL語句,我通常會盡量避免。 – Chris 2012-01-31 08:06:18
@Chris,是的,我知道,我已經發布了這種方法,因爲你需要一個標準的SQL方法來執行此操作:「這是否可以用標準SQL?」。正如我所說:「這只是一個開始點」或許這可以幫助你最終的解決方案。問候。 – danihp 2012-01-31 08:11:13