直到今天我需要设置一个计算机列,才知道计算列,所以请原谅这个愚蠢。这是我的create table语句
CREATE TABLE [Match](
[Match Org] [nvarchar](10) NULL,
[Bypass] [nvarchar](10) NULL,
[win] as case when [Match Org] == 'yes' or [Bypass] == 'yes' then 'yes' else 'no'
) ON [PRIMARY]
GO
我希望win列自动计算为yes,如果匹配组织或旁路中有肯定的话...谢谢
答案 0 :(得分:3)
CREATE TABLE [Match](
[Match Org] [nvarchar](10) NULL,
[Bypass] [nvarchar](10) NULL,
[win] AS CASE WHEN ( [Match Org] = 'yes' --- equality check is: =
OR [Bypass] = 'yes' ) --- not: ==
THEN 'yes'
ELSE 'no'
END --- END was missing
PERSISTED --- you may also want to make
--- the column PERSISTED
) ON [PRIMARY]
答案 1 :(得分:1)
CREATE TABLE [Match](
[Match Org] [nvarchar](10) NULL,
[Bypass] [nvarchar](10) NULL,
[win] as case when [Match Org] = 'yes' or [Bypass] = 'yes' then 'yes' else 'no' end
)
GO
答案 2 :(得分:0)
你可以做的是
表格中的列创建
[win] AS ([dbo].[GetColValue]([Match Org],[Bypass ]))
您可以创建的功能
ALTER FUNCTION [dbo].[GetColValue](@MatchOrg nvarchar(10),@Bypass nvarchar(10))
RETURNS varchar(10)
AS
BEGIN
DECLARE @Result varchar(10)
SET @Result = case
when ([Match Org] = 'yes' or [Bypass] = 'yes' )
then 'yes' else 'no'
end
RETURN
(
@Result
)
END