SQL SSMS CREATE TABLE使用另一列中的值



我有一个练习,在一个代码中创建两个表。我正在创建两个表,现在我需要的是在第二个表中使用第一个表中的值。以下是它的样子:

CREATE TABLE a(
[hours]int NOT NULL,
)
CREATE TABLE b(
[example] varchar(60) NOT NULL PRIMARY KEY,
[simple_name] AS (CASE WHEN example = 'name' THEN 40 
WHEN example = 'name2' THEN 45 END) /*THIS IS WHAT I WANT TO DO: * [a](hours)  */,
)

如何使用第二张表中第一张表的小时数?我想要的是从第一张表开始用40或45乘以小时。

我认为视图可能是您的答案:

CREATE TABLE a ([hours]int NOT NULL);
CREATE TABLE b ([example] varchar(60) NOT NULL PRIMARY KEY)
GO
CREATE VIEW v as 
SELECT
[example],
[simple_name] = CASE 
WHEN example = 'name'  THEN 40 
WHEN example = 'name2' THEN 45 
END
* a.hours

FROM b
CROSS JOIN a -- this is a cross join and perhaps it has to be replaced with some other types of join: inner, left, right, full?

然后将视图用作常规表:

select * from v

最新更新