Code:
CREATE TABLE Boje
(
Id INT,
Opis VARCHAR(20)
)
INSERT INTO Boje VALUES (1, 'Bela')
INSERT INTO Boje VALUES (2, 'Plava')
INSERT INTO Boje VALUES (3, 'Zuta')
INSERT INTO Boje VALUES (4, 'Crvena')
INSERT INTO Boje VALUES (5, 'Zelena')
CREATE TABLE Boje
(
Id INT,
Opis VARCHAR(20)
)
INSERT INTO Boje VALUES (1, 'Bela')
INSERT INTO Boje VALUES (2, 'Plava')
INSERT INTO Boje VALUES (3, 'Zuta')
INSERT INTO Boje VALUES (4, 'Crvena')
INSERT INTO Boje VALUES (5, 'Zelena')
I sad hocu dinamicki da pravim ORDER BY klauzulu u zavinosti od ulaznog parametra stored procedure. Na google sam nasao samo ovaj nacin za to. Na primer hocu da sortiram po koloni Opis.
Code:
DECLARE @kolona VARCHAR(4)
SET @kolona = 'Opis'
SELECT Id, Opis
FROM Boje
ORDER BY
CASE @kolona
WHEN 'Id' THEN Id
WHEN 'Opis' THEN Opis
END
DECLARE @kolona VARCHAR(4)
SET @kolona = 'Opis'
SELECT Id, Opis
FROM Boje
ORDER BY
CASE @kolona
WHEN 'Id' THEN Id
WHEN 'Opis' THEN Opis
END
Vraca mi gresku
''Conversion failed when converting the varchar value 'Bela' to data type int''
Ukoliko su sve kolone u CASE po kojima je moguce sortirati istog tipa, onda radi lepo, ali meni treba u kombinaciji sa INT, MONEY pa i BIT ako moze.
Zanmiljivo je da ukoliko je kombinacija VARCHAR i MONEY poruka je jos neodredjenija
''Cannot convert a char value to money. The char value has incorrect syntax.''
Da li postoji neko drugo resenje? Molim za pomoc.
Code:
DROP TABLE Boje
DROP TABLE Boje