sql >> データベース >  >> RDS >> Sqlserver

SQLServerの既存のテーブルに計算列を追加する

    この記事では、T-SQLを使用して、SQLServerの既存のテーブルに計算列を追加する方法を示します。

    計算列 式を使用してその値を計算する仮想列です。式は通常、他の列のデータを使用します。計算列は、PERSISTEDとマークされていない限り、テーブルに物理的に保存されません。 。

    例1-計算列なしでテーブルを作成する

    まず、なしでテーブルを作成しましょう 計算列。

    CREATE TABLE Products
      (
        ProductID int IDENTITY (1,1) NOT NULL,
        ProductName varchar(255), 
        Quantity smallint,
        Price money
      );
    
    INSERT INTO Products (ProductName, Quantity, Price)
    VALUES 
      ('Hammer', 5, 10),
      ('Corkscrew', 2, 7.50),
      ('Kettle', 3, 25.15);
    
    SELECT *
    FROM Products;
    

    結果:

    +-------------+---------------+------------+---------+
    | ProductID   | ProductName   | Quantity   | Price   |
    |-------------+---------------+------------+---------|
    | 1           | Hammer        | 5          | 10.0000 |
    | 2           | Corkscrew     | 2          | 7.5000  |
    | 3           | Kettle        | 3          | 25.1500 |
    +-------------+---------------+------------+---------+
    

    例2–計算列を追加する

    次に、計算列を追加しましょう。

    ALTER TABLE Products 
    ADD TotalValue AS (Quantity * Price);
    

    TotalValueという計算列を追加しました Quantityの値を乗算します Priceの値を含む列 桁。

    ここでテーブルのコンテンツを選択すると、次のようになります。

    SELECT *
    FROM Products;
    

    結果:

    +-------------+---------------+------------+---------+--------------+
    | ProductID   | ProductName   | Quantity   | Price   | TotalValue   |
    |-------------+---------------+------------+---------+--------------|
    | 1           | Hammer        | 5          | 10.0000 | 50.0000      |
    | 2           | Corkscrew     | 2          | 7.5000  | 15.0000      |
    | 3           | Kettle        | 3          | 25.1500 | 75.4500      |
    +-------------+---------------+------------+---------+--------------+
    

    例3–値を更新する

    ここで、値がQuantityで更新された場合 またはPrice 列の場合、これは計算された列によって返される合計値に影響します。

    例:

    UPDATE Products
    SET Quantity = 4
    WHERE ProductId = 1;
    
    SELECT *
    FROM Products;
    

    結果:

    +-------------+---------------+------------+---------+--------------+
    | ProductID   | ProductName   | Quantity   | Price   | TotalValue   |
    |-------------+---------------+------------+---------+--------------|
    | 1           | Hammer        | 4          | 10.0000 | 40.0000      |
    | 2           | Corkscrew     | 2          | 7.5000  | 15.0000      |
    | 3           | Kettle        | 3          | 25.1500 | 75.4500      |
    +-------------+---------------+------------+---------+--------------+
    

    1. 2つの日付の間の金曜日の数

    2. MySQLで日時から時間を差し引く方法は?

    3. 1〜10の範囲のランダムな数値を生成します

    4. PostgreSQL上のSQLを使用して配列内の複数の行を連結します