在SQL中我有點新。我試圖做的是按照匹配標準的降序對行進行排序。 當我說匹配標準時,我的意思是那些與我的SQL查詢具有更多匹配列的行應該排在第一位。像任何方式來排序在SQL中的行提取使用匹配標準
SELECT a.*,
f.*
FROM a
INNER JOIN f as f
ON f.fid = a.aid
WHERE (a.icid = 25290
AND a.pt = 2)
AND (f.st LIKE '%Outpatient%'
OR f.st LIKE '%Service201%')
現在我行的順序應該是,如果它匹配所有它應該在上面,然後在第二個應該是具有所有列,但F.ST匹配,則等於是一個向前。
例如
我有一個表名測試 列名5列
ID,姓名,FNAME,城市,國家
我的查詢
SELECT *
FROM TEST
WHERE name LIKE "%John%"
OR fname LIKE "%Mike%"
OR city IN ("Abu Dhabi, New York, Manchester")
OR country IN ("USA, UAE, UK")
說我對這個查詢有10行。 什麼,我想要的是匹配所有的行應該來在結果的頂部設置 像下面
名,FNAME,城市,counrty
約翰·麥克,紐約,美國 - >匹配的所有四個字段
約翰·麥克,德里,英國 - >匹配三個字段
約翰,汗,拉合爾,美國 - >匹配的是兩個領域
約翰,汗,拉合爾,PK - >一個字段匹配
約翰·麥克,汗,拉合爾,PK - >匹配一個領域
也許如果你想補充的示例數據和預期的結果將是更清楚,你會得到更多的答案 – GuidoG
如果你想通過'like matches'命令你必須使用sql'IF()' – JustOnUnderMillions
打破你的查詢並使用union all – KumarHarsh