/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Order By
Fra : gerner


Dato : 26-02-04 11:06

Jeg har lavet en Stored Procedure som jeg vil have sorteret på baggrund af
en input variabel. Men kan ikke helt få dte til at virke. Det er ORDER BY
@sort som den ikke kan lide. Nogen der kender løningen på problemet?

WHERE (User.deleted_ = 0) ORDER BY @sort



 
 
Jens Gyldenkærne Cla~ (26-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 26-02-04 11:42

gerner skrev:

> Jeg har lavet en Stored Procedure som jeg vil have sorteret på
> baggrund af en input variabel.

Variable med referencer til objektnavne kan ikke umiddelbart køres
i en sql-sætning. Du skal bruge EXEC og lave sql-kaldet som en
sammensat streng.

Prøv at køre følgende batch:

USE pubs
DECLARE @felt varchar(30)
SET @felt = 'city'
/* Nedenstående virker ikke - prøv at fjerne
udkommateringen og se fejlmeddelelsen
*/
-- select @felt from authors order by @felt

/* Denne metode virker */
DECLARE @sql varchar(400)
SET @sql = 'SELECT ' + @felt + ' FROM authors ORDER BY ' + @felt
EXEC (@sql)
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

gerner (26-02-2004)
Kommentar
Fra : gerner


Dato : 26-02-04 14:15

Nu virker det næsten. Eneste fejl er at deleted er af typen bit og det kan
den ik lide.
'......... WHERE Users.Deleted_ =' + @deleted + ' ORDER BY' + @sort

Error 403: Invalid operator for datatype. Operator equals add, type equals
bit

> /* Denne metode virker */
> DECLARE @sql varchar(400)
> SET @sql = 'SELECT ' + @felt + ' FROM authors ORDER BY ' + @felt
> EXEC (@sql)
> --
> Jens Gyldenkærne Clausen
> »Diplomatiet består netop i, at de gamle kommatister kan få lov til
> at tro, at de har vundet. Men i virkeligheden har de tabt.«
> Ole Togeby i Information



Jens Gyldenkærne Cla~ (26-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 26-02-04 15:37

gerner skrev:

> Nu virker det næsten.

Hvad virker næsten? Hint: læs min signatur.

> Eneste fejl er at deleted er af typen
> bit og det kan den ik lide.

Når du opbygger din sql-streng skal alle dele af strengen være i en
teksttype - uanset om indholdet i virkeligheden er et tal.

> '......... WHERE Users.Deleted_ =' + @deleted + ' ORDER BY' +


Prøv med

> '... WHERE Users.Deleted_ =' + CAST(@deleted as varchar(1)) + ...
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste