タグ付けされた質問 「oracle」

Oracle Databaseは、Oracle Corporationによって作成されたマルチモデルデータベース管理システムです。JavaやMySQLなど、Oracleが所有する他の製品にはこのタグを使用しないでください。


17
注文後にOracleクエリによって返される行数を制限するにはどうすればよいですか?
OracleクエリにMySQL limit句が含まれているように動作させる方法はありますか? ではMySQL、これを行うことができます: select * from sometable order by name limit 20,10 21行目から30行目を取得するには(最初の20をスキップして、次の10を指定します)。行はの後に選択されるorder byため、実際には20番目の名前からアルファベット順に始まります。 ではOracle、人々が言及するのはrownum疑似列だけですが、それはの前 order byに評価されます。つまり、 select * from sometable where rownum <= 10 order by name 名前で並べられた10行のランダムなセットが返されますが、これは通常は必要ありません。また、オフセットを指定することもできません。

30
列の最大値を持つ行をフェッチします
テーブル: UserId, Value, Date. UserId、各UserIdのmax(Date)の値を取得したい。つまり、最新の日付を持つ各UserIdの値です。これをSQLで簡単に行う方法はありますか?(できればOracle) 更新:あいまいさをお詫びします:すべてのユーザーIDを取得する必要があります。ただし、各UserIdについては、そのユーザーが最新の日付を持っている行のみ。


30
SQLデータベーステーブルのn番目の行を選択する方法
データベーステーブルからn番目の行を選択する、データベースにとらわれない方法を学習することに興味があります。また、次のデータベースのネイティブ機能を使用してこれを実現する方法も興味深いでしょう。 SQLサーバー MySQL PostgreSQL SQLite オラクル 現在、SQL Server 2005で次のようなことをしていますが、他のより不可知論的なアプローチに興味があります。 WITH Ordered AS ( SELECT ROW_NUMBER() OVER (ORDER BY OrderID) AS RowNumber, OrderID, OrderDate FROM Orders) SELECT * FROM Ordered WHERE RowNumber = 1000000 上記のSQLのクレジット:Firoz Ansariのウェブログ 更新: SQL標準に関するTroels Arvinの回答を参照してください。トロエル、私たちが引用できるリンクはありますか?



15
Oracle:テーブルが存在する場合
私はOracleデータベース用の移行スクリプトをいくつか書いていて、OracleがMySQLのIF EXISTS構成に似ていることを望んでいました。 具体的には、MySQLにテーブルをドロップするときはいつでも、次のようにします DROP TABLE IF EXISTS `table_name`; この方法では、テーブルが存在しない場合でも、DROPエラーは発生せず、スクリプトを続行できます。 Oracleにも同様のメカニズムがありますか?次のクエリを使用して、テーブルが存在するかどうかを確認できることに気付きました SELECT * FROM dba_tables where table_name = 'table_name'; しかし、それをa DROPと結び付ける構文は、私から逃れています。
343 sql  oracle  sql-drop 

24
SQLに「LIKE」と「IN」の組み合わせはありますか?
OverаэтотвопросестьответынаStack Overflowнарусском:СуществуетликомбинацияоператоровLIKEиINвуслории SQLでは、(悲しいことに)LIKEデータベースが正規化のほぼすべての規則に違反しているため、「」条件を使用する必要があります。今は変更できません。しかし、それは問題とは無関係です。 さらに、WHERE something in (1,1,2,3,5,8,13,21)SQLステートメントの可読性と柔軟性を向上させるような条件をよく使用します。 複雑な副選択を書かずにこれら2つを組み合わせるための可能な方法はありますか? WHERE something LIKE ('bla%', '%foo%', 'batz%')これの代わりに簡単なものが欲しい: WHERE something LIKE 'bla%' OR something LIKE '%foo%' OR something LIKE 'batz%' ここではSQl ServerとOracleを使用していますが、どのRDBMSでもこれが可能かどうか興味があります。
340 sql  sql-server  oracle  tsql  plsql 



14
Oracleでの内部結合を使用したステートメントの更新
MySQLで正常に動作するクエリがありますが、Oracleで実行すると次のエラーが発生します。 SQLエラー:ORA-00933:SQLコマンドが正しく終了していません00933 00000-「SQLコマンドが正しく終了していません」 クエリは次のとおりです。 UPDATE table1 INNER JOIN table2 ON table1.value = table2.DESC SET table1.value = table2.CODE WHERE table1.UPDATETYPE='blah';

12
Oracle:UPSERT(更新またはテーブルへの挿入?)
UPSERT操作は、テーブルにデータと一致する行がすでにあるかどうかに応じて、テーブルの行を更新または挿入します。 if table t has a row exists that has key X: update t set mystuff... where mykey=X else insert into t mystuff... Oracleには特定のUPSERTステートメントがないため、これを行うための最良の方法は何ですか?
293 sql  oracle  merge  upsert 


13
Oracleのテーブルで重複する値を見つけるにはどうすればよいですか?
指定された列の重複値とOracleデータベーステーブルでのそれらの発生数を返す最も簡単なSQLステートメントは何ですか? たとえばJOBS、次のような列を持つテーブルがありますJOB_NUMBER。JOB_NUMBER重複するがあるかどうか、および重複する回数を確認するにはどうすればよいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.