問題タブ [sql-order-by]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - SQL Order By および null によるデータベースの一貫性
データベース (フラグ) に、Y または NULL のいずれかが入力されたタイプ varchar(1) の列があります (これは、私のコントロールではありません)。
SQL Server では、クエリで昇順を実行すると、NULL が一番上に配置されます。この動作は、Oracle と DB2 で一貫しているべきですか?
代わりに、列に COALESCE を使用してクエリで null にならないようにすると、(テーブル スキャンなどによる) パフォーマンスの問題が発生する可能性がありますか?
編集
クエリは 3 つのデータベースすべてで一貫している必要があります。それ以外の場合はコードで処理する必要があるため、COALESCE 関数を使用することを考えています
編集
質問の両方の部分に対処し、役立つ回避策を提供してくれたので、答えとして Pax を選択しましたが、ここへのリンクを提供してくれた me.yahoo.com/a/P4tXrx に感謝します。
c# - Linq to SQL:複合オブジェクトで注文するにはどうすればよいですか?
次のLinq to SQLクエリがあり、複数列のGROUP BYを実行しようとしています:
これにより、InvalidOperationException (「タイプ 'Task' で注文できません。」) がスローされます。
Task が実装する必要があるインターフェイスはありますか (既にIComparable、IComparable<ITask> を実装しています)。Task は Linq to SQL Entity である必要がありますか (対応するテーブルがないため、現在はそうではありません)。それとも、これは Linq to SQL がサポートしていないものですか?
グループ化のために匿名型を既に試しましたが、同様の InvalidOperationException で失敗したことに注意してください。
価値のあることとして、Task オブジェクトは 2 つのフィールドの複合体であることに注意してください。1 つは単一の文字 (通常は 'S' または 'B') で、もう 1 つは int (実際にはデータベース間の「外部キー」) です。タスクによる順序付けの行為は、それらの文字列表現を比較するだけです。EG タスク 'B101' < タスク 'S999'
grails - Grailsで複数のフィールドで注文するには?
姓と名など、2 つのフィールドで並べ替えられたリストを取得する方法はありますか?
私は知っていて.listOrderByLastAndFirst
、.list(sort:'last, first')
うまくいきません。
c# - 順序を維持しながら順序付きリストをデータベースに保存する最良の方法
過去数年間に何度も遭遇した問題に対して、誰かが良い解決策を持っているかどうか疑問に思っていました。
私はショッピング カートを持っていますが、顧客はその注文が重要であることを明示的に要求しています。したがって、注文をDBに永続化する必要があります。
明らかな方法は、番号 0 を N に割り当て、そのように並べ替える OrderField を挿入することです。
しかし、そうすると再注文が難しくなり、この解決策は壊れやすく、いつか戻ってくるだろうと感じています。
(NHibernate と SQL Server 2005 で C# 3,5 を使用しています)
ありがとうございました
sql - グループ化された行を使用して SQL クエリを並べ替える方法
MS Access にテーブル (Product_Id、カテゴリの優先度、属性 1、属性 2...) があり、データをカテゴリ別にグループ化し、優先度の高い順に並べ替えるクエリを作成しようとしています。優先度は Null になる可能性があるため、最後に配置する必要があります。例: テーブル
クエリで期待される結果:
mysql - SQL IN() 句の値の順序による並べ替え
IN() 句の値の順序で並べ替える方法 (おそらくもっと良い方法) があるかどうか疑問に思っています。
問題は、2 つのクエリがあることです。1 つはすべての ID を取得し、もう 1 つはすべての情報を取得します。1 つ目は、2 つ目の順序で並べたい ID の順序を作成します。ID は正しい順序で IN() 句に入れられます。
したがって、次のようになります(非常に単純化されています):
問題は、2 番目のクエリが、ID が IN() 句に入れられた順序と同じ順序で結果を返さないことです。
私が見つけた 1 つの解決策は、すべての ID を自動インクリメント フィールドを持つ一時テーブルに配置し、それを 2 番目のクエリに結合することです。
より良いオプションはありますか?
注:最初のクエリは「ユーザーによって」実行され、2 番目のクエリはバックグラウンド プロセスで実行されるため、サブクエリを使用して 2 つを 1 つのクエリに結合する方法はありません。
私はMySQLを使用していますが、他のDBにもどのようなオプションがあるかを記載しておくと便利かもしれないと考えています.
sql - SQL Server UNION - デフォルトの ORDER BY 動作とは
不自然な例としていくつかの UNION ステートメントがあるとします。
デフォルトのorder by
動作は何ですか?
私が見ているテスト データは、基本的に、上記で指定された順序でデータを返しません。つまり、データは順序付けされていますが、これに関する優先順位のルールを知りたいと思っていました。
もう 1 つのことは、この場合、xxx がビューであることです。ビューは 3 つの異なるテーブルを結合して、必要な結果を返します。
list - SQL呼び出しからのリストの順序
daoTemplate.query()
を使用して、呼び出しからリストが返されrowMapper
ます。
SQLは列で順序付けを行い、たまたま日付列であり、リストを使用する場合はascで順序付けされますが、リストがsqlで指定された順序になることが常に保証されています。最初の要素(theList.get(0)
)が常に最も早い日付(この場合)になることを信頼できますか?
mysql - MySQLクエリにORDERBY句を追加すると、約0.5秒から約30秒で返されます。
したがって、このクエリは約0.5秒と比較的高速ですが、ORDER BY句を追加すると、30秒近くまでジャンプします。
元のクエリ:(約0.5秒で返されます)
ORDER BYを使用したクエリ:(約30秒で戻ります)
注ORDERBYによって使用されている列にインデックスを追加しましたが、何も変更されていません。
何がこれを引き起こしているのかについてのアイデアはありますか?
sql - ORDERBY句を使用せずに同じ順序でレコードをフェッチする
T-SQLは初めてです。誰かがorderby句を使用せずに同じ順序でSQLテーブルからレコードをフェッチする方法を教えてもらえますか?