我试图找到一种方法来使用单个查询计算表的列的按位OR.我可以使用游标实现相同的功能
Declare @orValue int;
Declare @fieldValue int;
set @orValue = 0;
DECLARE my_cursor CURSOR FOR
SELECT MyField
FROM MyTable
WHERE SomeColumnValue=123
OPEN my_cursor
FETCH NEXT FROM my_cursor
INTO @fieldValue
WHILE @@FETCH_STATUS = 0
BEGIN
set @orValue = @orValue | @fieldValue;
FETCH NEXT FROM my_cursor INTO @fieldValue
END
CLOSE my_cursor;
DEALLOCATE my_cursor;
print @orValue;
Run Code Online (Sandbox Code Playgroud)
做了一些谷歌但没有找到任何解决方案.
DECLARE @orv INT = 0;
SELECT @orv=@orv|MyField
FROM MyTable
WHERE SomeColumnValue=123;
Run Code Online (Sandbox Code Playgroud)