SQL Server:我可以从表中的列中获得表中的派生列吗?

时间:2014-08-21 19:50:23

标签: sql-server

我想知道我是否可以在我的表格中找到一个派生列,我猜是自动'我在该表中插入行时计算的。例如,我想到这样一个表:

Object ID | Object Path                                   | File Type
1           /Documents/Subfolder/Subfolder2/FileName.ascx   .ascx
2           /Documents/Subfolder/FileName2.png              .png

我不知道是否可以从对象路径自动生成文件类型,因为它只是对象路径中数据的子字符串。

有办法做到这一点吗?现在我只是创建一个返回文件类型的存储过程,但我想知道是否有一种方法可以将文件类型作为表的一部分,而不仅仅是SELECT查询的结果集。感谢。

1 个答案:

答案 0 :(得分:2)

您可以添加计算列,这是一个示例:

CREATE TABLE dbo.Products 
(
    ProductID int IDENTITY (1,1) NOT NULL
  , QtyAvailable smallint
  , UnitPrice money
  , InventoryValue AS QtyAvailable * UnitPrice
);

-- Insert values into the table.
INSERT INTO dbo.Products (QtyAvailable, UnitPrice)
VALUES (25, 2.00), (10, 1.5);

-- Display the rows in the table.
SELECT ProductID, QtyAvailable, UnitPrice, InventoryValue
FROM dbo.Products;

在您的情况下,您可以在CHARINDEX中找到.的{​​{1}}并执行子字符串以填充Object Path

以下是一些有助于此的链接:

Computed Column

CHARINDEX

SUBSTRING

干杯!!