Shi*_*mmy 9 null sql-server-2005 calculated-columns isnull
我尝试使用此计算列:
CREATE TABLE dbo.Item
(
ItemId int NOT NULL IDENTITY (1, 1),
SpecialItemId int NULL,
--I tried this
IsSpecialItem AS ISNULL(SpecialItemId, 0) > 0,
--I tried this
IsSpecialItem AS SpecialItemId IS NOT NULL
--Both don't work
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 16
这有效:
CREATE TABLE dbo.Item
(
ItemId int NOT NULL IDENTITY (1, 1),
SpecialItemId int NULL,
IsSpecialItem AS
CAST(CASE ISNULL(SpecialItemId, 0) WHEN 0 THEN 0 ELSE 1 END AS bit)
)
Run Code Online (Sandbox Code Playgroud)
Gar*_*ett 14
马克·拜尔的回答会导致一个错误nvarchar的列,下面的作品,无论列是否是int或nvarchar:
CREATE TABLE dbo.Item
(
ItemId int NOT NULL IDENTITY (1, 1),
SpecialItemId [nvarchar](50) NULL,
CAST(CASE WHEN SpecialItemId Is NULL THEN 0 ELSE 1 END AS bit)
AS IsSpecialItem
)
Run Code Online (Sandbox Code Playgroud)