webForumDet fria alternativet
Logga in / Bli medlem

2 värden i variablar

Databaser & SQL

2 svar · 236 visningar · startad av Nöff

Medlem sedan nov. 2003569 inlägg
Trådstart#1

hej

DECLARE ID int
DECLARE namn char(10)

SELECT TOP 1 ID,namn FROM tabellen

Kan jag få ID och namn från resultsetet in i variablarna utan att använda CURSORS?

Medlem sedan juni 200032 967 inlägg
#2

Jajemen, det här borde funka:

DECLARE @ID int
DECLARE @namn char(10)

SELECT TOP 1 @ID=ID, @namn=namn FROM tabellen ORDER BY foo
SELECT @ID AS ID, @namn AS namn

Men, borde du inte använda varchar istället för char?

mvh :)

Medlem sedan nov. 2003569 inlägg
#3

Gött. För att detta är verkligen ett dödligt bra sätt att göra extremt snabba querys. För att man kan vidareutveckla den här till att innefatta flera resultset baserat på tidigare SELECT resultset sisåhär ungefär:

DECLARE @ID int
DECLARE @namn char(10)

SELECT TOP 1 @ID=ID, @namn=namn FROM tabellen ORDER BY foo
SELECT @ID AS ID, @namn AS namn

SELECT * FROM order WHERE kundID=@ID

SELECT * FROM klagomal WHERE kundID=@ID

Den här SQL:en returnerar 3 batchar direkt baserat på den första queryn. För att om man inte hade använt SQL variablar hade man ju fått först returnera kundID:et till applikationen och sen göra 2 SELECT med hjälp av det returnerade kundID:et, och det är ju inge kul :bire

270 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
115 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)