Re: mssql to db convert questions? -
04-26-2010
, 11:04 AM
Without considering conversion(and sequence of result values), the
function itself would be written with less number of iterations.
CREATE OR REPLACE FUNCTION dbo.FCOMBitMask
( BitCnt INTEGER
, Mask INTEGER
)
RETURNS TABLE
( Val INTEGER )
LANGUAGE SQL
READS SQL DATA
SPECIFIC dbo.FUNC1
RETURN
WITH loop1(k , ret) AS (
VALUES (0 , 0)
UNION ALL
SELECT k + 1
, ret + n
FROM loop1
, TABLE
(VALUES POWER(2 , k)
, CASE BITAND( POWER(2 , k) , Mask )
WHEN 0
THEN 0
ELSE NULL
END
) n(n)
WHERE k < 32
AND k < BitCnt
AND n IS NOT NULL
)
SELECT ret
FROM loop1
WHERE k = BitCnt
; |