我想知道是否有一种简短的方法(无需对整个事物进行编程)来确定 T-SQL 中二进制值中的最大值。
在列中,我存储1 = sunday, 2 = monday, .. 7 = saturday
按位选择 () 的日期。
我的翻译表:
-- day of week
-- 1 == 1 -> POWER(2,0) -> sunday
-- 2 == 2 -> POWER(2,1) -> monday
-- 3 == 4 -> POWER(2,2)
-- 4 == 8 -> POWER(2,3)
-- 5 == 16 -> POWER(2,4)
-- 6 == 32 -> POWER(2,5)
-- 7 == 64 -> POWER(2,6) -> saturday
因此,如果我选择星期天和星期六的示例,我的二进制值为 65。
T-SQL
我该如何选择65
呢7
?
编辑
假设我有两条记录,两列:
ID | SelectedDays
------|--------------
1 | 65
2 | 3
因此,ID 1
将返回 7,因为这将是选定的星期六ID 2
并将返回星期一。