【发布时间】:2021-04-21 15:53:55
【问题描述】:
我在 Azure SQL 服务器中有一个表,其中有一个值和一个日期。
CREATE TABLE [dbo].[example] (
[Value] varchar(50) NULL,
[Date] date NULL
)
INSERT INTO [dbo].[example] ([Value], [Date]) VALUES (N'A', N'2020-04-01')
GO
INSERT INTO [dbo].[example] ([Value], [Date]) VALUES (N'A', N'2020-04-01')
GO
INSERT INTO [dbo].[example] ([Value], [Date]) VALUES (N'B', N'2020-04-03')
GO
INSERT INTO [dbo].[example] ([Value], [Date]) VALUES (N'C', N'2020-04-03')
GO
我只有有限的 MySQL 经验,并且对更改的语句有困难。 在这个数据库中,我需要根据该值计算一个新的日期。
我知道如何使用以下语句进行 Dateadd。
SELECT
example.[Value],
example.[Date],
DATEADD(day, 10, example.[Date]) AS NewDate
FROM
dbo.example
但它会将日期添加到所有人。我已经阅读了 if else 语句,但这就是我无法得到结果的地方。
我需要的是,如果值在 (B, C) 中,它应该只添加 10 天,否则在当前日期字段中添加 20 天。如何将 If 语句设置为适用于每一行,因为如果我使用其背后的逻辑,它会返回多个结果并且它将无法工作
【问题讨论】:
标签: sql-server if-statement azure-sql-database