1
我在沒有主鍵的表上有一個簡單的選擇。我正在提取365個值,每年有一個值。我可以在SQL Server 2008 R2中執行此操作嗎?我希望添加另一個名爲rain的列,並使用每週一個值或每七行填充一個值。我當前的查詢是:每n行返回一個列值
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
.......;
像'雨=情況下ROW_NUMBER()OVER(由jday順序)%7 = 0,那麼其他設爲myVal 0 end' – ZLK
謝謝,工作完美!我認爲它需要一個主鍵來使用row_number。你是否知道任何內置的SQL特性將Julian日值轉換爲當前日期?例如9會是09/01/yyyy?再次感謝 – Mat41
也許['DATEFROMPARTS'](https://msdn.microsoft.com/en-us/library/hh213228.aspx)就像你正在尋找的東西。當前的年/月值可以來自'DATEPART(YEAR,GETDATE())'和'DATEPART(MONTH,GETDATE())'。 **編輯:**我剛剛意識到這是SQL 2008,在這種情況下,你需要手動完成。例如'CAST(DATEPART(YEAR,GETDATE())AS VARCHAR(4))+' - '+ CAST(DATEPART(MONTH,GETDATE())AS VARCHAR(2))+' - '+ CAST(JDAY AS VARCHAR ))' – ZLK