1

ブログ プロジェクトの場合、新しい投稿を評価と挿入された日時で並べ替えたいと考えています。
しかし、注文する前に、これらの値を使っていくつかの計算を行い、最初に表示された投稿で人気と最新性をうまく組み合わせたい. (redditsのフロントページのように)

純粋な SQL でこれを行うことはできますか? 私はそれが可能だとは思いません...
このタスクにどのように取り組みますか?

表: 投稿の列: pid タイトル コンテンツ 作成者 日付 時間 last_edited カテゴリ パスワード

4

1 に答える 1

1

いくつかの表現を作成し、それによって順序を付ける必要があるかもしれません-ここで私はそれがどのようになるかを示しようとしました:

declare @Temp_Data table (Rating int, [Date] datetime, [Text] nvarchar(max))

insert into @Temp_Data 
select 100, '20121001 15:00', 'Big rating post' union all
select 1, '20121013 15:00', 'Recent post' union all
select 20, '20121005 15:00', 'Other post'

select
    T.Rating, T.[Date], T.[Text]
from @Temp_Data as T
order by Rating * 200 - datediff(mi, [Date], getdate()) desc
于 2012-10-14T15:50:07.603 に答える