---
title: "sortera recordset efter \"relevans\""
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11490-sortera-recordset-efter-relevans"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "mrblonde"
published: "2001-09-05T15:05:00.000Z"
updated: "2001-09-06T09:15:00.000Z"
replies: 4
views: 265
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/11490-sortera-recordset-efter-relevans"
---

# sortera recordset efter "relevans"

## #1 — mrblonde, 2001-09-05T15:05Z

hmmm... bygger en sökfunktion som gör en vanligt select \* from tbl where fält LIKE '%sökord%'

Nu skulle jag vilja sortera det här recordsetet efter hur tidigt i träfftexten ordet förekommer.
Någon som har någon vettig funktion ihopknåpad för detta? Den kan returnera en array också, det funkar med.

Ex. om träff ett är "Hej och hå"
och träff två är "Hå och hej"

Så vill jag att om jag söker på "Hå" så skall de komma sorerade med träff två först och träff ett sen (och sen resten med i fallande ordning)

Hittade inget vettigt när jag sökte, men jag kanske sökte fel :)

Permalänk: https://www.webforum.nu/p/11490

## #2 — LarsG, 2001-09-05T15:16Z

```
select * from tbl where falt like '%sökord%' order by charindex('sökord',falt)
```

red: sql server/sybase specifik

Permalänk: https://www.webforum.nu/p/285810

## #3 — mrblonde, 2001-09-06T06:50Z

Tack!

LarsG, du är suverän!

hmmm.... finns det något sätt även att ta order by hur ofta "sökord" förekommer i strängen?

Bara undrar, det gäller en sql server 7.
(har du något bra tips på en länk där alla sådana däringa metoder i sql finns uppradeade? charindex och sånt?)

Permalänk: https://www.webforum.nu/p/285811

## #4 — LarsG, 2001-09-06T07:11Z

<http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000409> 

Sen kan du gå vidare från denna. Det verkar bara finnas en fullständig beskrivning för SQL server 2000.

Om man vill ha antal förekomster så får man tricka till det lite

```
  select * from t
   where falt like '%sökord%'
  order by (len(falt)-len(replace(falt,'sökord',''))/len('sökord') desc
```

    

red: desc kanske är mer relevant i detta sammanhang

Permalänk: https://www.webforum.nu/p/285812

## #5 — mrblonde, 2001-09-06T09:15Z

tack.

Alltid vettig info snabbt.

Permalänk: https://www.webforum.nu/p/285813

---

Tråden på webben: https://www.webforum.nu/amne/asp/11490-sortera-recordset-efter-relevans
