データでいっぱいのテーブルがあり、id(varchar2)、description(varchar2)、diameter(number)、crown(number)、および lockout(single char) の 5 つの列があります。
このテーブルは、ASP-classic を使用して作成された Web アプリケーションに組み込まれています。テーブルの上部には、各列の名前を持つヘッダーを持つ行があります。ユーザーが見出しをクリックすると、テーブルが再構築され、前の方向に応じて、クリックした列で昇順または降順で並べ替えられます (Web サイトの典型的な並べ替えボタンのように)。
私がしたいことは次のとおりです。ユーザーがid 以外の行をクリックすると、クリックした行と idで並べ替えます。たとえば、説明に同じ値を持つ何百ものレコードが存在する可能性があるためです。
これが、現在の並べ替え方法を決定するコードのスニペットです。
if Len(strSort) > 0 then
sqlQry = sqlQry + " ORDER BY " & strSort
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
end if
strSort
asp クエリ URL から取得され、クリックされたときに URL に追加されます。 intSortDir
基本的には 0 に初期化され、ユーザーが見出しをクリックすると切り替わります。
要約すると、私の質問は、一度に 2 つの列で並べ替えるにはどうすればよいかということです。クリックされた列が主な並べ替えになります。
私はこれを試しました:
if Len(strSort) > 0 then
if strSort = "id" then
sqlQry = sqlQry + " ORDER BY " & strSort
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
else
sqlQry = sqlQry + " ORDER BY " & strSort & ",id"
if intSortDir <> "1" then
sqlQry = sqlQry + " DESC"
end if
end if
end if
そして、それは私が望んでいた方法で並べ替えられましたが、並べ替えの方向を切り替えることはできませんでした.