1
私は主キーを持たないテーブルで単純な選択をしています。私は365の値を抽出しています。毎年1つの値が抽出されます。 SQL Server 2008 R2でこれを行うことは可能ですか?私はrainという別の列を追加して、1週間に1つの値、または7行に値を設定したいと考えています。現在のクエリは次のとおりです。n個の行ごとに列の値を返します
SELECT jDay, tMax, tMin
FROM tableName;
最初の3つの列が返されます。どのように私はそれがこのように見えるように雨の列を達成します:
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 end' – ZLK
他に、その後myval ROW_NUMBER()(jdayによって順)%以上7 = 0はありがとう、完璧な作品! row_numberを使用するには、主キーが必要だと思った。ジュリアンの日の値を現在の年の日付に変換するための組み込みSQL機能を知っていますか?たとえば9は09/01/yyyyですか?もう一度おねがいします – Mat41
恐らく['DATEFROMPARTS'](https://msdn.microsoft.com/en-us/library/hh213228.aspx)はあなたが探しているもののようなものです。現在の年/月の値は、 'DATEPART(YEAR、GETDATE())'と 'DATEPART(MONTH、GETDATE()) 'から得られます。 **編集:**私はこれがSQL 2008のためのものであることを認識しました。この場合、手動で行う必要があります。例えば(2))+ ' - ' + CAST(JDAY AS VARCHAR(2)) '+' - '+ CAST(DATEPART(月、GETDATE())AS VARCHAR )) ' – ZLK