---
title: "Många SQL-satser blir det..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11902-många-sql-satser-blir-det"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Karlsson"
published: "2001-10-02T07:58:00.000Z"
updated: "2001-10-02T11:15:00.000Z"
replies: 7
views: 214
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/11902-många-sql-satser-blir-det"
---

# Många SQL-satser blir det...

## #1 — Karlsson, 2001-10-02T07:58Z

Jag har en sida där ca: 10 lags spelare ska visas. Mitt problem är sorteringsordningen, jag vill visa trupperna efter coach, målvakt, back och forward från fältet position. ORDER BY position ger ju sorteringen i bokstavsordning. Om jag gör separata sql-satser för varje lag så blir det ju närmare 40 såna, känns osmidigt minsann... så här ser koden ut just nu:

```
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "***;Password***"
%>

<%lag = Request.QueryString("lag")%>

<%
Select Case lag
  Case "herrar"
    sSQL="SELECT * FROM spelare WHERE lag ='herrar' ORDER BY position"
  Case "damer"
    sSQL="SELECT * FROM spelare WHERE lag ='damer' ORDER BY position"
  Case "j17"
    sSQL="SELECT * FROM spelare WHERE lag ='j17' ORDER BY position"
  Case "f16"
    sSQL="SELECT * FROM spelare WHERE lag ='f16' ORDER BY position"
End Select
%>
<TABLE WIDTH="410" BORDER="0" cellpadding="0" cellspacing="2">
<%
Set rs = Server.CreateObject("ADODB.Recordset") 
rs.Open sSQL, Conn
Do While Not rs.EOF
cnt = cnt + 1
strColor = "" 
If cnt Mod 2 = 0 then strColor = "#CCCCCC"
Response.Write "<TR bgcolor='" & strColor & "'>"
%>
<TD><%=rs("nummer")%></TD><td><%=rs("position")%></TD><td><%=rs("fnamn")%> <%=rs("enamn")%></TD><td>
</TR>

<%
rs.MoveNext
Loop
rs.Close 
Conn.Close 
%>
```

 

\[Redigerat av Karlsson den 02 okt 2001\]

\[Redigerat av Karlsson den 02 okt 2001\]

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

## #2 — PatrikB, 2001-10-02T08:14Z

Hello,

det du kan göra är att skapa ett fält till i tabellen position som tex sortorder och av typen tal.

Sedan förstår jag inte varför du har en select case för sql-frågorna.

Denna funkar på samma sätt:

```
lag = Request.QueryString("lag")
sSQL="SELECT * FROM spelare WHERE lag ='" & lag & "' ORDER BY position"
```

cya
PatrikB

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

## #3 — @nders, 2001-10-02T08:15Z

Byt

```
Select Case lag
Case "herrar"
sSQL="SELECT * FROM spelare WHERE lag ='herrar' ORDER BY position"
Case "damer"
sSQL="SELECT * FROM spelare WHERE lag ='damer' ORDER BY position"
Case "j17"
sSQL="SELECT * FROM spelare WHERE lag ='j17' ORDER BY position"
Case "f16"
sSQL="SELECT * FROM spelare WHERE lag ='f16' ORDER BY position"
End Select
```

mot

```
sSQL="SELECT * FROM spelare WHERE lag ='" & lag & "' ORDER BY position"
```

Eventuellt kan du ju ha en if-sats runt för att se att det inte kommer en massa skräp, men det borde inte behövas.

Mvh,

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

## #4 — Karlsson, 2001-10-02T08:54Z

Ja, det där var ju onekligen lite bättre!
Får väl grubbla vidare hur jag ska lösa sorteringen... position är ju inte tabellen utan ett fält i tabellen spelare.

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

## #5 — Karlsson, 2001-10-02T09:34Z

Just nu går det väl sådär...

```
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=***;Password=***"
Set rs = Server.CreateObject("ADODB.Recordset") 
lag = Request.QueryString("lag")
sSQL="SELELCT * FROM SPELARE WHERE lag ='" & lag & "' ORDER BY position"
%>

<TABLE WIDTH="410" BORDER="0" cellpadding="0" cellspacing="2">
<%
rs.Open sSQL, Conn
Do While Not rs.EOF
cnt = cnt + 1
strColor = "" 
If cnt Mod 2 = 0 then strColor = "#CCCCCC"
Response.Write "<TR bgcolor='" & strColor & "'>"
%>
<TD><%=rs("nummer")%></TD><td><%=rs("position")%></TD><td><%=rs("fnamn")%>&#160;<%=rs("enamn")%></TD><td>
</TR>

<%
rs.MoveNext
Loop
rs.Close 
Conn.Close 
%>
```

Ger följande felmeddelande:

ADODB.Recordset.1 error '80004005' 
SQLState: 37000
Native Error Code: -3500
\[INTERSOLV\]\[ODBC SequeLink driver\]\[ACCESS\]\[Microsoft\]\[ODBC Microsoft Access Driver\] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

/evo/lista_spelare.asp, line 28 
Linje 28 är den där jag öppnar recordsetet.

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

## #6 — LarsG, 2001-10-02T09:52Z

```
sSQL="SELELCT * FROM SPELARE WHERE lag ='" & lag & "' ORDER BY position"
```

selelct heter det inte.

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

## #7 — Karlsson, 2001-10-02T10:59Z

Nä fan! Det har du ju helt rätt i :-)

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

## #8 — OlleBoop, 2001-10-02T11:15Z

Eftersom det där var det sista vi kommer att se av Karlsson på ett tag(han sitter hemma och är generad) så skall jag på hans vägar be om ursäkt... ;)

\[Redigerat av OlleBoop den 02 okt 2001\]

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/11902-många-sql-satser-blir-det
