【问题标题】:SQL SSMS CREATE TABLE use value from another columnSQL SSMS CREATE TABLE 使用来自另一列的值
【发布时间】:2021-12-22 03:42:50
【问题描述】:

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

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 小时。

【问题讨论】:

  • 使用CROSS JOIN?

标签: sql-server tsql ssms


【解决方案1】:

我认为观点可能是您的答案:

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

【讨论】:

    猜你喜欢
    • 2020-05-29
    • 1970-01-01
    • 2019-05-08
    • 1970-01-01
    • 2014-07-18
    • 2011-05-02
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多