gpt4 book ai didi

sql-server - 需要帮助编写复杂的 sql 查询

转载 作者:行者123 更新时间:2023-12-04 19:41:37 25 4
gpt4 key购买 nike

CREATE TABLE #tmpTableA
(
[Id] [int] NOT NULL,
RegionId INT,
DistrictId INT,
NurseryDays INT,
TransplantDays INT
)

INSERT #tmpTableA ([Id], RegionId,DistrictId,NurseryDays,TransplantDays) VALUES (1,1,NULL,2,2)
INSERT #tmpTableA ([Id], RegionId,DistrictId,NurseryDays,TransplantDays) VALUES (2,1,2,NULL,2)

示例代码的输出是,

Id  RegionId    DistrictId     NurseryDays         TransplantDays
2 1 2 NULL 2
1 1 NULL 2 2

我想要的结果是,1.)如果 RegionId 和 DistrictId 存在,则获取此组合的移植天数,否则获取 RegionId 和 DistrictId(NULL) 的移植天数。

2.) 如果 RegionId 和 DistrictId 存在,则获取此组合的 Nursery days,否则获取 RegionId 和 DistrictId (NULL) 的 Nursery days。

期望的结果:

NurseryDays        TransplantDays
2 2

这在单个查询中可能吗?

感谢和问候,费萨尔·纳西尔

最佳答案

您对结果的描述与实际结果不符。如果您需要从您的数据中获取 regionid 和 districtid 的育儿日,这应该为空。

您将需要如图所示创建存储过程以获得结果。

create PROCEDURE ProcGetDays 
@regionid int
AS
BEGIN

SET NOCOUNT ON;
declare @nurserydays int
declare @transplantdays int

select @transplantdays = transplantdays from tmpTableA where regionid=@regionid and districtid is not null
if @transplantdays is null
select @transplantdays = transplantdays from tmpTableA where regionid=@regionid

select @nurserydays=nurserydays from tmpTableA where regionid=@regionid and districtid is not null
if @nurserydays is null
select @nurserydays=nurserydays from tmpTableA where regionid=@regionid

select @nurserydays as nurserydays,@transplantdays as transplantdays


END
GO

如果您需要使用临时表,您需要在存储过程中创建它以使其仍然可用。在示例中,我使用了一个永久表。

结束开始

关于sql-server - 需要帮助编写复杂的 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com