此查询将动态int转换为二进制,但我想拆分为行。
declare @value int
set @value = 96
declare @result varchar(32)
set @result = ''
while 1 = 1
begin
select
@result = convert(char(1), @value % 2) + ',' +@result,
@value = convert(int, @value / 2)
if @value = 0 break
end
select substring(@result, 1, len(@result)-1) as result
请帮助我找到解决方案。
这是我的查询结果。
1,1,0,0,0,0,0
我的问题是:如何将结果从右到左分成几行?
我的结果必须是这个(我正在尝试插入#table中):
0
0
0
0
0
1
1
谢谢
答案 0 :(得分:3)
使用WHILE
似乎是个坏主意。如果您想实现自己的目标,这将是一个更快的解决方案:
DECLARE @I int = 96
SELECT CONVERT(bit,@i & V.b)
FROM (VALUES(1),(2),(4),(8),(16),(32),(64)) V(b)
ORDER BY V.b;