我在没有主键的表上进行了简单的选择。我正在提取365个值,一年中每天一个。我是否可以在SQL Server 2008 R2中执行此操作。我希望添加另一个名为rain的列,并将其填充为每周一次或每七行一次。我目前的疑问是:
SELECT jDay, tMax, tMin
FROM tableName;
它只返回前三列。如何实现雨柱,使其看起来像这样:
jDAy tmax tmin rain
11 21.1 10.1 0
12 22.1 11.1 0
13 23.1 9.1 0
14 24.1 8.1 0
15 29.1 10.1 0
16 21.1 11.1 0
17 22.1 12.1 4
编辑:感谢ZLK的解决方案:
SELECT
julDay, tMax, tMin,
rain = case
when row_number() over (order by julDay) % 7 = 0 then 4
else 0
end
FROM
tableName
WHERE
.......;
答案 0 :(得分:1)
将ROW_NUMBER()
与MODULO (%)
一起使用,您可以每X行指定一个值。
e.g。
SELECT julDay,
tMax,
tMin,
rain = CASE WHEN ROW_NUMBER() OVER (ORDER BY julDay) % 7 = 0 THEN 4 ELSE 0 END
FROM tableName;