Questions tagged «oracle»

Oracle数据库是由Oracle Corporation创建的多模型数据库管理系统。请勿将此标签用于Oracle拥有的其他产品,例如Java和MySQL。


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 将返回一个随机的十行,按名称排序,这通常不是我想要的。它也不允许指定偏移量。

30
获取具有列最大值的行
表: UserId, Value, Date. 我想获取UserId,每个UserId的max(Date)值。即,具有最新日期的每个UserId的值。有没有办法在SQL中简单地做到这一点?(最好是Oracle) 更新:对于任何歧义,我们深表歉意:我需要获取所有UserIds。但是对于每个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的Weblog 更新:有关SQL标准,请参见Troels Arvin的答案。Troels,您有没有我们可以引用的链接?



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”的组合?
Наэтотвопросестьответына 堆栈溢出нарусском:СуществуетликомбинацияоператоровLIKEиINвусловиизапроса? 在SQL I中,(不幸的)我经常不得不使用“ LIKE”条件,因为数据库违反了几乎所有规范化规则。我现在无法更改。但这与问题无关。 此外,我经常使用条件WHERE something in (1,1,2,3,5,8,13,21)来提高SQL语句的可读性和灵活性。 有没有可能在不编写复杂的子选择的情况下将这两件事结合起来的方法? 我想要一些简单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的表中找到重复的值?
什么是最简单的SQL语句,该语句将返回给定列的重复值及其在Oracle数据库表中的出现次数? 例如:我有一个JOBS带有列的表JOB_NUMBER。如何确定是否有重复JOB_NUMBER的,以及它们被重复了多少次?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.