我是SQL新手,所以我需要您对查询的帮助。基本上我有一个ZipCodes的数据库,我想在选定ZipCode之前获得3个项目,之后获得3个项目。我想出的查询是非常糟糕的...获取项目之前和之后的项目 - SQL查询
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个项目,当前项目和下3个项目。所选择的前邮编
我认为应该指出,除非邮政编码保证是唯一的,否则下面的所有答案都会失败。 – Jonatan