Gol*_*awk 1 sql-server-2008 sql-server
我们的数据库中有两个名为“ClientIncome”和“PartnerIncome”的现有列。我们想添加一个名为“HouseholdIncome”的新列
我们想将“ClientIncome”和“PartnerIncome”中的值添加到新的“HouseholdIncome”列中?
这是我们数据库的一个小例子。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Incomes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ClientIncome] [float] NOT NULL,
[PartnerIncome] [float] NULL,
[HouseholdIncome] [float] NULL
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[Incomes] ON
GO
INSERT [dbo].[Incomes] ([Id], [ClientIncome], [PartnerIncome], [HouseholdIncome]) VALUES (1, 130.77, NULL, NULL)
GO
INSERT [dbo].[Incomes] ([Id], [ClientIncome], [PartnerIncome], [HouseholdIncome]) VALUES (2, 294.82, 339.28, NULL)
GO
INSERT [dbo].[Incomes] ([Id], [ClientIncome], [PartnerIncome], [HouseholdIncome]) VALUES (3, 0, NULL, NULL)
GO
INSERT [dbo].[Incomes] ([Id], [ClientIncome], [PartnerIncome], [HouseholdIncome]) VALUES (4, 0, 396.82, NULL)
GO
SET IDENTITY_INSERT [dbo].[Incomes] OFF
GO
Run Code Online (Sandbox Code Playgroud)
我们要更新的表有大约 500 万行,因此对于添加此新列的任何帮助将不胜感激。
只需更改您的 table create 语句以使用计算列。
CREATE TABLE [dbo].[Incomes](
[Id] [int] IDENTITY(1,1) NOT NULL,
[ClientIncome] [float] NOT NULL,
[PartnerIncome] [float] NULL,
[HouseholdIncome] AS COALESCE(ClientIncome, 0.) + COALESCE(PartnerIncome, 0.)
)
Run Code Online (Sandbox Code Playgroud)
如果您的表已经创建,您可以添加一个计算列:
ALTER TABLE dbo.Incomes ADD HouseholdIncome
AS COALESCE(ClientIncome, 0.) + COALESCE(PartnerIncome, 0.);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |