Sunday, June 1, 2014

t-sql 2008 r2 explain select

Just for fun: (SQL 2012)



DECLARE @val AS BIGINT = 1337
;WITH cteBinary AS
(
SELECT @val & (@val - 1) COL1, @val - (@val & (@val - 1)) AS COL2
UNION ALL
SELECT COL1 & (COL1 - 1) COL1, COL1 - (COL1 & (COL1 - 1)) AS COL2
FROM cteBinary
WHERE COL1 > 0
)
SELECT LOG(Col2, 2) + 1 AS id, COL2 AS bitvalue FROM cteBinary


No comments:

Post a Comment