有没有办法使用单个查询对任何列进行按位OR?

Ran*_*ngh 0 sql sql-server

我试图找到一种方法来使用单个查询计算表的列的按位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)

做了一些谷歌但没有找到任何解决方案.

TT.*_*TT. 5

DECLARE @orv INT = 0;

SELECT @orv=@orv|MyField
FROM MyTable
WHERE SomeColumnValue=123;
Run Code Online (Sandbox Code Playgroud)