Sql 添加使用其他列字段作为操作数(如加法和百分比计算)的列
这是我用来显示百分比的过程。Sql 添加使用其他列字段作为操作数(如加法和百分比计算)的列,sql,sql-server,Sql,Sql Server,这是我用来显示百分比的过程。 如果一个班级有100名学生,我想显示每个学生的百分比,那么动态计算年龄百分比并返回答案的SP将非常耗时。早些时候,我试图在tbl_标记本身中添加一列百分比。是否可以在存储过程中实现触发器,该过程在tbl_标记上调用“插入”或“更新”操作。实际上我从未用过扳机。如果你能用一个问题向我解释这个问题的解决方案,那就太好了。提前感谢。计算列可以使用表中其他列的数据来计算它所属列的值。此外,计算列是一个虚拟列,除非该列被标记为持久化,否则它不会物理存储在表中 因此,将表定义更
如果一个班级有100名学生,我想显示每个学生的百分比,那么动态计算年龄百分比并返回答案的SP将非常耗时。早些时候,我试图在tbl_标记本身中添加一列百分比。是否可以在存储过程中实现触发器,该过程在tbl_标记上调用“插入”或“更新”操作。实际上我从未用过扳机。如果你能用一个问题向我解释这个问题的解决方案,那就太好了。提前感谢。计算列可以使用表中其他列的数据来计算它所属列的值。此外,
计算列
是一个虚拟列,除非该列被标记为持久化,否则它不会物理存储在表中
因此,将表定义更改为:
ALTER PROCEDURE [dbo].[Sp_TotalMarks]
AS
BEGIN
SELECT Student_Id, Stu_Name, Maths, English, Hindi,
(Maths + English + Hindi) AS 'Total',
CAST(CAST((Maths + English + Hindi) AS NUMERIC(8,2)) / 300 * 100 AS NUMERIC(8,2)) AS 'Percentage'
FROM tbl_Marks
END
这将向表中添加两列,以反映每次更新或插入时的计算值
你可以查一下电话号码。希望这有帮助 表中的100行是一个非常小的数字,很难想象任何例行查询都会“耗时”。如果要优化查询,请编辑问题并将查询包含在编辑中。您可以在表tbl_Marks中添加一个标记为“持久”的计算列。。它应该可以解决这个问题。@GordonLinoff我不知道如何在这个网站上以正确的方式放置代码。我已经编辑了我的问题。@Deepshikha我没听懂你的意思。你能解释清楚一点吗。你的意思是我可以在我的表中添加这个cal列。我不想在需要查看详细信息时反复调用此过程。请立即检查。。希望这是服务的目的!!!是的,这就是我想要实现的。另外,我喜欢这个网站。非常感谢!
ALTER TABLE tbl_Marks ADD total AS (Maths + English + Hindi) PERSISTED;
ALTER TABLE tbl_Marks ADD Percentage AS CAST(CAST((Maths + English + Hindi) AS NUMERIC(8,2)) / 300 * 100 AS NUMERIC(8,2)) PERSISTED;