使用另一个表值更新一个表

时间:2014-08-28 17:26:58

标签: sql case

我从Excel导入了一个包含以下值的工作表:

ID NAME MON TUE WED THU FRI SAT SUN

周一至周日有时间值。

我想将所有这些值插入到另一个表中。

问题出现在另一个表中,MON-TUE-WED-THU等都变成了一个名为DayOfWeek的列,它具有INT值。因此,第一个表中的星期一变为2,星期二在DayOfWeek中变为3,依此类推。

好像很容易?那么表1中的值必须在包含DayOfWeek的新表中重复,因为ID和NAME有很多时间值。例如,他们可以在TUE,THU上工作。

我是否必须使用CASE语句进行此方法?

示例:

INSERT INTO table2 (ID, DayOfWeek, StartTime)
SELECT ID, CASE 
WHEN MON IS NOTNULL THEN '1'
END AS DayOfWeek

我觉得它会比那更复杂。

1 个答案:

答案 0 :(得分:0)

保持简单:

INSERT INTO table2 (Id, [DayOfWeek], StartTime)
SELECT Id, 1, Sun
FROM table1
UNION
SELECT Id, 2, Mon
FROM table1
UNION
SELECT Id, 3, Tue
FROM table1
UNION
SELECT Id, 4, Wed
FROM table1
UNION
SELECT Id, 5, Thu
FROM table1
UNION
SELECT Id, 6, Fri
FROM table1
UNION
SELECT Id, 7, Sat
FROM table1

如果需要,您可以添加Where [Mon] IS NOT NULL