1

DataSqlSource に接続するグリッド ビューがあります。クエリをドロップダウン リストで動的に並べ替えたい。たとえば、日付、名前、家族などで。クエリでいくつかのテーブルにも参加します。DataSqlSource でこのコードを使用します。

  SELECT AddTitle.Title, SubmitManuscript.Status, AddArticleType.Type, AddArticleType.UserName, AddArticleType.ArticleType, SubmitManuscript.date, SubmitManuscript.ArticleNum, AddArticleType.ArticleID, CONVERT (VARCHAR(10), SubmitManuscript.date, 103) AS date1, OtherWritter.ArticleID AS Expr1, OtherWritter.name, OtherWritter.family, AddArticleType.CheckFinish FROM AddArticleType INNER JOIN AddTitle ON AddArticleType.ArticleID = AddTitle.ArticleID INNER JOIN SubmitManuscript ON AddArticleType.ArticleID = SubmitManuscript.ArticleID INNER JOIN OtherWritter ON AddTitle.ArticleID = OtherWritter.ArticleID WHERE (AddArticleType.ArticleID IN (SELECT ArticleID FROM AddUpload_4 AS AddUpload_4_1 WHERE (AddArticleType.CheckFinish = '0'))) AND (AddArticleType.Type = @Type) AND (SubmitManuscript.Status = 'Accept') AND 
(OtherWritter.MainAuthor = 'Yes') ORDER BY '[' + @SortOrder + ']' DESC

しかし、それは私にはうまくいきませんし、ソートも行われません!

また、このコードも試してみましたが、今回はエラーが発生しました。コードは次のとおりです。

SELECT ...
FROM ...
ORDER BY
    CASE WHEN @order=Country THEN Country  END DESC,
    CASE WHEN @order= City THEN City  END ASC,
    CASE WHEN @order= name THEN name  END ASC

どんな体でも私を助けることができますか?

4

1 に答える 1

0

私はそれがすべきだと思います:

SELECT ...
FROM ...
ORDER BY
    CASE WHEN @order='Country' THEN Country  END DESC,
    CASE WHEN @order='City' THEN City  END ASC,
    CASE WHEN @order='name' THEN name  END ASC
于 2013-01-28T10:01:38.393 に答える