_simon_ (11/28/2012)
Yes, with stored procedures this is easily achievable, but I cannot use it in scenarios like:
declare @t table (Id int, I1 int, I2 int, I3 int, I4 int, I5 int)
-- insert ...
select Id, dbo.AreEqual(I1, I3, I5), dbo.AreEqual(I1, I2), dbo.AreEqual(I4, I5)
from @t
-- or
select *
from @t
where dbo.AreEqual(I1, I2) and dbo.AreEqual(I4, I5)
Sure you can. Did you try turning Joe's code into a function?
e.g.
CREATE FUNCTION Equal (
@p1 INT = NULL,
@p2 INT = NULL,
@p3 INT = NULL,
@p4 INT = NULL,
@p5 INT = NULL
)
RETURNS VARCHAR(5)
AS
BEGIN
DECLARE @ReturnValue VARCHAR(5);
SELECT @ReturnValue = CASE WHEN MIN(parm) = MAX(parm) THEN 'True' ELSE 'False' END
FROM (SELECT parm
FROM (VALUES (@p1),(@p2),(@p3),(@p4),(@p5)) AS X1(parm)
WHERE parm IS NOT NULL
) AS X2(parm);
RETURN @ReturnValue;
END