คำถามติดแท็ก oracle

Oracle Database เป็นระบบการจัดการฐานข้อมูลหลายรุ่นที่สร้างโดย 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
ดึงข้อมูลแถวที่มีค่า Max สำหรับคอลัมน์
โต๊ะ: UserId, Value, Date. ฉันต้องการได้รับ UserId, ค่าสูงสุด (วันที่) สำหรับแต่ละ UserId นั่นคือค่าสำหรับ UserId แต่ละอันที่มีวันที่ล่าสุด มีวิธีการทำเช่นนี้เพียงแค่ใน SQL? (เฉพาะ Oracle) อัปเดต:ขอโทษสำหรับความกำกวมใด ๆ : ฉันต้องได้รับ UserIds ทั้งหมด แต่สำหรับแต่ละ UserId เฉพาะแถวนั้นที่ผู้ใช้นั้นมีวันล่าสุด


30
วิธีการเลือกแถวที่ n ในตารางฐานข้อมูล SQL
ฉันสนใจที่จะเรียนรู้วิธีฐานข้อมูลแบบไม่เชื่อเรื่องพระเจ้าในการเลือกแถวที่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 อัปเดต:ดูคำตอบของ Troels Arvinเกี่ยวกับมาตรฐาน SQL Troels คุณมีลิงค์ที่เราสามารถอ้างอิงได้ไหม?

8
วิธีสร้างไดอะแกรมความสัมพันธ์เอนทิตี (ER) โดยใช้ Oracle SQL Developer
ฉันต้องการใช้ Oracle SQL Developer เพื่อสร้างไดอะแกรม ER สำหรับตาราง DB ของฉัน แต่ฉันยังใหม่กับ Oracle และเครื่องมือนี้ กระบวนการสร้างไดอะแกรม ER ใน SQL Developer เป็นอย่างไร


15
Oracle: ถ้า Table มีอยู่
ฉันเขียนสคริปต์การย้ายข้อมูลบางอย่างสำหรับฐานข้อมูล Oracle และหวังว่า Oracle จะมีสิ่งที่คล้ายกับIF EXISTSโครงสร้างของ MySQL โดยเฉพาะอย่างยิ่งเมื่อใดก็ตามที่ฉันต้องการวางตารางใน 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
มีการรวมกันของ "LIKE" และ "IN" ใน SQL หรือไม่
Наэтотвопросестьответына Stack Overflow нарусском : Существуетликомбинацияоператоровเช่นเดียวกับในусловиизапроса? ใน 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 ใด ๆ …
341 sql  sql-server  oracle  tsql  plsql 

11
foreign key สามารถเป็น NULL และ / หรือทำซ้ำได้หรือไม่?
โปรดอธิบายสองสิ่งให้ฉัน: foreign key สามารถเป็นค่า NULL ได้หรือไม่? รหัสต่างประเทศสามารถทำซ้ำได้หรือไม่ ยุติธรรมเท่าที่ฉันรู้NULLไม่ควรใช้ในคีย์ต่างประเทศ แต่ในบางแอปพลิเคชันของฉันฉันสามารถป้อนข้อมูลNULLทั้งใน Oracle และ SQL Server และฉันไม่รู้ว่าทำไม


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 

4
วิธีการใช้ความสัมพันธ์แบบหนึ่งต่อหนึ่งแบบตัวต่อตัวและแบบกลุ่มต่อกลุ่มในขณะที่ออกแบบตาราง
ใครสามารถอธิบายวิธีการใช้ความสัมพันธ์แบบหนึ่งต่อหนึ่งแบบตัวต่อตัวและแบบกลุ่มต่อกลุ่มในขณะที่ออกแบบตารางพร้อมตัวอย่าง

13
ฉันจะค้นหาค่าที่ซ้ำกันในตารางใน Oracle ได้อย่างไร
คำสั่ง SQL ที่ง่ายที่สุดที่จะส่งกลับค่าที่ซ้ำกันสำหรับคอลัมน์ที่กำหนดคืออะไรและจำนวนที่เกิดขึ้นของพวกเขาในตารางฐานข้อมูล Oracle? ตัวอย่าง: ฉันมีตารางที่มีคอลัมน์JOBS JOB_NUMBERฉันจะทราบได้อย่างไรว่าฉันมีรายการซ้ำJOB_NUMBERหรือไม่และมีกี่ครั้งที่ซ้ำกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.