这是一个挑战。我正在处理表格ReportServer.Schedule
,并且有一个名为DaysOfWeek
. 我在这里可能没有使用正确的术语,但这是一个整数,可以从中得出 SSRS 订阅设置为在一周中的哪几天运行。每一天都分配了一个数字,如下所示:
- 周日:1
- 星期一:2
- 周二:4
- 周三:8
- 星期四:16
- 周五:32
- 星期六:64
订阅设置运行的总天数就是此列中的数字。因此,从周一到周五运行的订阅在此列中的值为62
。
我想要的最终结果是一个视图,它根据这个数字派生出每天的 T/F 标志,这样我每天都有一列。我目前正在探索的方法是将这个整数转换为 base-2,这样我就可以将它转换为 varchar 并解析出天数。在此示例中,结果将为 111110。
最后的转折——我没有能力在这个数据库中创建函数或存储过程,所以我强烈倾向于在一条SELECT
语句中解决这个问题……
(如果迫在眉睫,我将移动原始数据并在单独的数据库中使用一个函数 - 并且已经在网上找到了一些。)
除非我完全误解了你的问题,否则下面的 T-SQL 应该可以做到(如果这不是你要找的,请告诉我)。它利用按位运算符提取天数的位掩码:
由于您无法创建函数存储过程,因此您可以加入内存查找表:)