1

对于我的作业,我被要求编写一条 SQL 语句来执行以下操作。

在表中添加一个新列,registration即 ( ),并更新与每个formodule_name char (15)对应的该列。 是,因为是,因为是module_id200module namedigital diary201year planner202b’day remainder

我可以使用两个或更多语句来做到这一点,但是有什么方法可以在单个 sql 语句中完成吗?

4

3 回答 3

1

是的,可以使用 DEFAULT:

CREATE TABLE registration(module_id INT);
INSERT INTO registration(module_id) VALUES (100),(200),(201),(202);

改变:

ALTER TABLE registration
ADD COLUMN module_name char(15)
    DEFAULT (CASE module_id WHEN 200 THEN 'digital diary'
                            WHEN 201 THEN 'year planner'
                            WHEN 202 THEN 'b’day remainder'
            END);

db<>小提琴演示

于 2020-06-07T14:06:29.677 回答
0

您不能在一个批处理中执行此操作,您可以使用EXEC命令运行 sql 语句,这样您可以在两个不同的批处理和一个查询中执行此操作:

EXEC('statement1')

EXEC('statement2')
于 2012-05-16T13:11:12.140 回答
-1

使用存储过程,并在那里编写您需要的任何语句。

于 2012-05-16T13:15:37.387 回答