all groups > sql server programming > november 2004 >
You're in the

sql server programming

group:

Setting an int variable to sum of bits within stored proc


Setting an int variable to sum of bits within stored proc Jeff Evans
11/15/2004 10:59:15 PM
sql server programming:
I am trying to do something very simple:


CREATE PROC counter
@var1 TINYINT = 0,
@var2 TINYINT = 0,
@var3 TINYINT = 0
AS
BEGIN
DECLARE @numNotZero TINYINT
SET @numNotZero = (@var1 != 0)
+(@var2 != 0)
+(@var3 != 0)
END


It should be obvious what I'm trying to do - declare this variable and set
it to be the count of the number of parameters that are not 0. This syntax
does not work. I've tried everything I can think of, including casting,
converting, etc. Can't find anything like this online. What is the proper
way to accomplish it? Thanks...



--
Jeff Evans
Morgan Stanley Investment Management IT
www.jeffevans.us

Re: Setting an int variable to sum of bits within stored proc avnrao
11/16/2004 10:41:32 AM
if you are looking for var 1, 2, 3 only..use this

Create PROC counter
@var1 TINYINT = 0,
@var2 TINYINT = 0,
@var3 TINYINT = 0
AS
BEGIN
DECLARE @numNotZero TINYINT
SET @numNotZero = CASE WHEN (@var1 <> 0) THEN 1 ELSE 0 END
+ CASE WHEN (@var2 <> 0) THEN 1 ELSE 0 END
+ CASE WHEN (@var3 <> 0) THEN 1 ELSE 0 END
print(@numNotZero)
END

Av.
http://dotnetjunkies.com/WebLog/avnrao
http://www28.brinkster.com/avdotnet

[quoted text, click to view]

Re: Setting an int variable to sum of bits within stored proc Michael C
11/16/2004 4:18:01 PM
afaik you need to use a case when:

[quoted text, click to view]
etc

or create a function that you pass both values into that returns 1 or 0.

[quoted text, click to view]

Re: Setting an int variable to sum of bits within stored proc Itzik Ben-Gan
11/16/2004 8:11:47 PM
Jeff,

[quoted text, click to view]

Try,

SET @numNotZero =
ABS(SIGN(@var1)) + ABS(SIGN(@var2)) + ABS(SIGN(@var3))

--
BG, SQL Server MVP
www.SolidQualityLearning.com


[quoted text, click to view]

AddThis Social Bookmark Button