webForumDet fria alternativet

Lägg ihop värdet i två kolumner

Databaser & SQL

7 svar · 1 227 visningar · startad av Daniel78

Medlem sedan jan. 2001200 inlägg
Frågan#1

Hej,

Jag skulle behöva lite tips på nedanstående problem.

Jag har en tabell med flera kolumner varav värdet i två stycken bildar ett beställningsnummer. Beställningsnummret är alltså styckat i två delar när det lagras i tabellen, fråga mig inte varför det är så! :bire

Alltså:
I tabellen tblLogg så bildar kolumnerna RekID och RekNr ett beställningsnummer.

Nu till problemet, om jag vill skapa en sökfunktion för att söka på beställningsnummer i loggen så måste ju fälten RekID och RekNr slås ihop till ett värde! Går detta att lösa?

Ha en bra dag

Medlem sedan feb. 200112 078 inlägg
#2

Är det inte såhär man gör?

SELECT *, RekId + '' + RekNr AS BestNr FROM tblLogg

Flyttar tråden.

Medlem sedan jan. 2001200 inlägg
#3

Det fungerar nog inte med att använda + tecknet.

För att verkligen krångla till det så är fältet RekID inte av typen Int utan det kan exempelvis se ut så här: DG02. Men kolumnen RekNr är typen Int och det består av ett vanligt nummer.

När man visar dessa två fält så kan de exempelvis se ut så här: DG0210248

Jag undrar alltså om man kan slå ihop dessa fält på någotvis i SQL så att det blir möjligt att söka. :birp

Medlem sedan dec. 200012 464 inlägg
#4

Om + fungerar som strängkonkatenering beror på villken dbms du använder. Så kom fram med den informationen.

Medlem sedan jan. 2001200 inlägg
#5

Jag använder en MS SQL Server 2000.

Jag vet inte om jag har gjort mig förstådd så jag provar igen.

1.
Man skriver in ett beställningsnummer i en sökruta från en ASP sida.

2.
Jag har en Select-sats som ska matcha det inskrivna värdet, som är styckat i två delar i varsin kolumn(RekID & RekNr), i tabellen tblLogg. RekID och RekNr ska alltså tillsammans bilda ett beställningsnummer.

För övrigt så hänger jag inte riktigt med på OveRRidE's exempel.

Tack för att ni försöker :birp

Medlem sedan feb. 200112 078 inlägg
#6

Du vill alltså såhär: (psuedo)

RekId = "ABC1"
RekNr = "123A"

RekId & RekNr = "ABC1123A"

..eller?

Det är så mitt exempel fungerar (beroende på DBMS). :)

Medlem sedan dec. 200012 464 inlägg
#7
q = "select * from tblLogg " & _
" where rekid + cast(reknr as varchar(10)) = '" & replace(request.form("searchField"),"'","''")& "'"

+ används för att slå ihop två strängar i SQL server. Eftersom den ena kolumnen är integer så är det bäst att typkonvertera den innan konkateneringen.

Medlem sedan jan. 2001200 inlägg
#8

Tack för hjälpen, jag använde LarsG exempel fast jag bytte ut = mot like, för att öka funktionaliteten i sökfunktionen.

:birp

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
115 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)