Sql 计算列-需要帮助编写语句
直到今天我需要设置一个计算柱,我才听说过计算柱,所以请原谅我的愚蠢。这是我的CREATETABLE语句Sql 计算列-需要帮助编写语句,sql,sql-server,database,calculated-columns,Sql,Sql Server,Database,Calculated Columns,直到今天我需要设置一个计算柱,我才听说过计算柱,所以请原谅我的愚蠢。这是我的CREATETABLE语句 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] G
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
如果match org或bypass中有yes,我希望win列自动计算为yes。。。谢谢你能做的就是
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]
在表中创建列
[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
你能做的就是
在表中创建列
[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