1

私はこのmssqlクエリを持っています

SELECT TOP 50 [id], [title], [url], [icon], linkstats.visits 
FROM [websites] LEFT OUTER JOIN [linkstats] ON websites.id=linkstats.lid AND linkstats.code=@country 
WHERE (([country] = @country OR [country]= 'all') AND 
      ([hot] = @hot)) 
ORDER BY linkstats.visits DESC

最後まで null で並べ替えたいのですが、すべてが null の場合は ID で並べ替えます。

4

1 に答える 1

0

使用するCASE

SELECT TOP 50 [id], [title], [url], [icon], linkstats.visits 
FROM [websites] LEFT OUTER JOIN [linkstats] ON websites.id=linkstats.lid AND linkstats.code=@country 
WHERE (([country] = @country OR [country]= 'all') AND 
      ([hot] = @hot)) 
ORDER BY CASE WHEN linkstats.lid IS NULL THEN 1 ELSE 0 END,
         linkstats.visits DESC
于 2013-01-14T07:40:12.840 に答える