我是 SQL 新手,所以我需要你的帮助来查询。基本上我有一个邮政编码数据库,我想在选定的邮政编码之前获取 3 个项目,之后获取 3 个项目。我提出的查询非常糟糕......
WITH numberedlogtable AS
(
SELECT *
FROM dbo.US
)
SELECT *
FROM numberedlogtable
WHERE ZipCode IN (SELECT ZipCode+i
FROM numberedlogtable
CROSS JOIN (SELECT -1 AS i UNION ALL SELECT 0 UNION ALL SELECT 1) n
WHERE ZipCode='91803')
我从某个地方拿起了一个示例查询,并成功地将其转换为我使用。唯一的问题是此查询返回当前项目和下一个项目。相反,它应该返回前 3 个项目、当前项目和下三个项目。