[ dusty @ 08.07.2005. 16:36 ] @
Da li mogu dobijem rezultat poredjenja izraza, a da ne pisem funkciju ?
Hteo bih da smestim rezultat poredjenja (@prm > 0) u promenljivu, ali sa set @res = (@prm > 0) dobijam gresku. Nisam video neku ugradjenu funkciju koja bi mi pomogla

Pomoc !
[ Simke @ 08.07.2005. 22:25 ] @
Pretpostavljam da hoces da dobijes nazad true/false rezultat, 1 ako je @prm veci od 0, 0 ako je @prm manji od 0. Mozes postici sa IF:

Code:


DECLARE @res BIT

IF (@prm > 0)
     SET @res = 1
ELSE
     SET @res = 0

[ dusty @ 09.07.2005. 06:58 ] @
Hvala, ali to mi ne pomaze sa ovim sta sam sebi uvrteo u glavu

Pokusavam da napravim uslovni where, nesto kao:

Code:

declare @a int

set @a = 0

select * from Office
where (    case @a
        when 0 then 1    -- bezuslovno
        when 1 then (Identifier = 'bgd')
        when 2 then (Location = 'scg') end
) = 1


Ovo lepo radi za prvi slucaj, ali se buni kod =.

Jos jedna stvar mi nije jasna. Prevodilac ne prepoznaje true/false reci, zali se da ne moze da nadje kolone true/false.
Dok Query Analyzer oboji true/false kao da su ispravni izrazi, a ne kolone ?!
[ Simke @ 09.07.2005. 07:03 ] @
Probaj ovo

Code:


WHERE (@a = 0)
     OR (@a = 1 AND Identifier = 'bgd')
     OR (@a = 2 AND Location = 'scg')

[ MilovanB @ 11.07.2005. 10:29 ] @
Ne treba da razbijate glavu oko stvari za koje se normalno primenjuje dinamicki SQL.

Cod:

CRCREATE PROC MojPrimer
@a char(1)
AS
DECLARE @sqlstr varchar(1000)
set @sqlstr = ''
IF @a = '0' begin SET @SQLSTR='SELECT 1' end
ELSE if @a = '1'
BEGIN
SET @sqlstr= 'select * from Office where Identifier = ''BGD'''
EXEC (@sqlstr)
END
ELSE if @a = '2'
BEGIN
SET @sqlstr= 'select * from Office where Location = ''SCG'''
EXEC (@sqlstr)
END
GO

Pozdrav,
Milovan
[ dusty @ 13.07.2005. 12:00 ] @
Hvala veliko na pomoci, ova opasna caka sa OR je odradila stvar

Citat:
Ne treba da razbijate glavu oko stvari za koje se normalno primenjuje dinamicki SQL


Palo mi je na pamet isto, ali aplikacija koja koristi tu proceduru je nesto izbagovana i nece da radi sa procedurama koje imaju makar jedan declare ?!