タグ付けされた質問 「query-refactor」

3
複数の `or`式を避ける
私は次のOracle SQLとその作品を持っていますが、すべてのもので非常にquiteいですor。これを行うより簡潔な方法はありますか? SELECT * FROM foobar WHERE (SUBJECT ='STAT' and TERM ='111') or (SUBJECT ='STAT' and TERM ='222') or (SUBJECT ='ENGLISH' and TERM ='555') or (SUBJECT ='COMM' and TERM ='444') or (SUBJECT ='COMM' and TERM ='333') or (SUBJECT ='STAT' and TERM ='666') ...

3
これら2つのクエリは論理的に同等ですか?
これら2つのクエリは論理的に同等ですか? DECLARE @DateTime DATETIME = GETDATE() クエリ1 SELECT * FROM MyTable WHERE Datediff(DAY, LogInsertTime, @DateTime) > 7 クエリ2 SELECT * FROM MyTable WHERE LogInsertTime < @DateTime - 7 それらが論理的に同等でない場合、WHERE句がインデックスを効果的に使用できるように(つまり、関数のラッピングを排除する)ために、最初のクエリと論理的に同等のものを提供できますか?

2
TableBを繰り返すことによってTableAのすべての行を小さなTableBの行に結合する方法はありますか?
タイトルが紛らわしいので申し訳ありませんが、そこに何を書けばよいかわかりませんでした。 数百レコードのテーブルがあります。このテーブルの各レコードをユーザーのはるかに小さい動的テーブルに割り当てる必要があります。ユーザーは、割り当てられるレコードを交互に切り替える必要があります。 たとえば、TableAが Row_Number()ID 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 そしてTableBは Row_Number()ID 1 1 2 2 3 3 私は最終結果セットが必要です UserId RecordId 1 1 2 2 3 3 1 4 2 5 3 6 1 7 2 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.