0

次のようなテーブルがあるとします。

CREATE TABLE [dbo].[Scheduler](
    [DayOfWeek] [tinyint] NOT NULL,
    [Time] [time](0) NOT NULL,
    [Action] [varchar](255) NOT NULL
)

そして、次のようないくつかのデータ:

INSERT INTO Scheduler VALUES (1, '11:00:00', 'Sunday')
INSERT INTO Scheduler VALUES (2, '12:00:00', 'Monday')
INSERT INTO Scheduler VALUES (4, '13:00:00', 'Tuesday')
INSERT INTO Scheduler VALUES (8, '14:00:00', 'Wednesday')
INSERT INTO Scheduler VALUES (16, '15:00:00', 'Thursday')
INSERT INTO Scheduler VALUES (32, '16:00:00', 'Friday')
INSERT INTO Scheduler VALUES (64, '17:00:00', 'Saturday')
INSERT INTO Scheduler VALUES (62, '06:00:00', 'Every business day')
INSERT INTO Scheduler VALUES (127, '08:00:00', 'Every day')

DayOfWeek に複数のフラグがある場合、SELECT ステートメントで複数の行を生成するにはどうすればよいですか?

たとえば、次の行です。

INSERT INTO Scheduler VALUES (62, '06:00:00', 'Every business day')

これは、SELECT ステートメントで 5 行で表されます (日/フラグ セットごとに 1 行)。

DayOfWeek Time             Message
--------- ---------------- ---------------------------
2         06:00:00         Every business day
4         06:00:00         Every business day
8         06:00:00         Every business day
16        06:00:00         Every business day
32        06:00:00         Every business day

すべてのデータで同じクエリを実行すると、19 行が得られます。

  • 7 行 - 個々の日 (1、2、4、8、16、32、64) ごとに 1 行
  • 5 行 - 営業日 (62)
  • 7 行 - 毎日 (127)

どうすればこれができるかわかりません。これを行うにはカーソルを使用できると思いますが、ここではそれが最適なオプションですか?

ありがとう。

4

1 に答える 1