你如何计算视图中的两个别名列
How do you calculate two alias columns in a View
SELECT DATASET, BLOCKID, CATEGORY, TONNES * t100 AS True_Tonnes, VOLUME * t100 AS True_Volume, g100 AS Grade
FROM dbo.tblPTEvaluationRep_100ppm
我想在我正在创建的同一视图 table 中计算 True_Tonnes * 等级并将其别名为 'Metal'。
是这样的吗?
SELECT DATASET,
BLOCKID,
CATEGORY,
TONNES * t100 AS True_Tonnes,
VOLUME * t100 AS True_Volume,
g100 AS Grade,
--
tonnes * t100 * g100 as Metal --> this
------------- ---- -----
True_Tonnes Grade Alias --> explanation
FROM dbo.tblPTEvaluationRep_100ppm
您不能在 SELECT
中重复使用别名。您有四个选择:
- 重复表达式。
- 使用子查询。
- 使用 CTE。
- 使用横向连接。
在SQL服务器中,最后一个方法使用APPLY
:
SELECT p.DATASET, p.BLOCKID, p.CATEGORY,
v.True_Tonnes, v.True_Volume, v.Grade,
(v.True_Tonnes * v.Grade) as Metal
FROM dbo.tblPTEvaluationRep_100ppm p
(VALUES (p.TONNES * t100, p.VOLUME * p.t100, g100)
) v(True_Tonnes, True_Volume, Grade);
您可以使用以下查询
SELECT
数据集,
块ID,
类别,
吨 * t100 AS True_Tonnes,
音量 * t100 AS True_Volume,
g100 AS 等级,吨 * t100 * g100 作为金属
来自 dbo.tblPTEvaluationRep_100ppm
SELECT DATASET, BLOCKID, CATEGORY, TONNES * t100 AS True_Tonnes, VOLUME * t100 AS True_Volume, g100 AS Grade
FROM dbo.tblPTEvaluationRep_100ppm
我想在我正在创建的同一视图 table 中计算 True_Tonnes * 等级并将其别名为 'Metal'。
是这样的吗?
SELECT DATASET,
BLOCKID,
CATEGORY,
TONNES * t100 AS True_Tonnes,
VOLUME * t100 AS True_Volume,
g100 AS Grade,
--
tonnes * t100 * g100 as Metal --> this
------------- ---- -----
True_Tonnes Grade Alias --> explanation
FROM dbo.tblPTEvaluationRep_100ppm
您不能在 SELECT
中重复使用别名。您有四个选择:
- 重复表达式。
- 使用子查询。
- 使用 CTE。
- 使用横向连接。
在SQL服务器中,最后一个方法使用APPLY
:
SELECT p.DATASET, p.BLOCKID, p.CATEGORY,
v.True_Tonnes, v.True_Volume, v.Grade,
(v.True_Tonnes * v.Grade) as Metal
FROM dbo.tblPTEvaluationRep_100ppm p
(VALUES (p.TONNES * t100, p.VOLUME * p.t100, g100)
) v(True_Tonnes, True_Volume, Grade);
您可以使用以下查询
SELECT 数据集, 块ID, 类别, 吨 * t100 AS True_Tonnes, 音量 * t100 AS True_Volume, g100 AS 等级,吨 * t100 * g100 作为金属 来自 dbo.tblPTEvaluationRep_100ppm