考虑这个表:c_const
code | nvalue
--------------
1 | 10000
2 | 20000
和另一张桌子t_anytable
rec_id | s_id | n_code
---------------------
2 | x | 1
目标是拥有s_id
是一个计算列,基于以下公式:
rec_id*(select nvalue from c_const where code=ncode)
这会产生一个错误:
在此上下文中不允许使用子查询。仅允许使用标量表达式。
如何使用另一个表的列作为输入来计算此计算列的值?
您可以为此创建一个用户定义的函数:
CREATE FUNCTION dbo.GetValue(@ncode INT, @recid INT)
RETURNS INT
AS
SELECT @recid * nvalue
FROM c_const
WHERE code = @ncode
然后用它来定义你的计算列:
ALTER TABLE dbo.YourTable
ADD NewColumnName AS dbo.GetValue(ncodeValue, recIdValue)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)