Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

Oracle को SKIP LOCKED के साथ TOP N पंक्तियों को वापस करने के लिए बाध्य करें

"मैंने जो देखा है, उसके अनुसार, कौन सी पंक्तियों को छोड़ना है, यह निर्धारित करने से पहले Oracle WHERE विधेय को लागू करता है।"

हां। यह एकमात्र संभव तरीका है। जब तक आप परिणाम सेट का निर्धारण नहीं कर लेते, तब तक आप किसी परिणामसेट से एक पंक्ति को नहीं छोड़ सकते।

उत्तर केवल SELECT कथन द्वारा लौटाई गई पंक्तियों की संख्या को सीमित नहीं करना है। आप अभी भी अनुकूलक को निर्देशित करने के लिए FIRST_ROWS_n संकेतों का उपयोग कर सकते हैं कि आप पूरे डेटा सेट को नहीं पकड़ेंगे।

SELECT को कॉल करने वाले सॉफ़्टवेयर को केवल पहली n पंक्तियों का चयन करना चाहिए। पीएल/एसक्यूएल में, यह होगा

DECLARE
  CURSOR c_1 IS  
    SELECT /*+FIRST_ROWS_1*/ qt.ID
    FROM QueueTest qt
    WHERE Locked IS NULL
    ORDER BY PRIORITY
    FOR UPDATE SKIP LOCKED;
BEGIN
  OPEN c_1;
  FETCH c_1 into ....
  IF c_1%FOUND THEN
     ...
  END IF;
  CLOSE c_1;
END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XML पथ के लिए SQL सर्वर दोहराए जाने वाले नोड बनाते हैं

  2. SQL सर्वर डेटाबेस में एकाधिक तालिकाओं में कॉलम में डिफ़ॉल्ट बाधाओं को जोड़ने के लिए स्क्रिप्ट कैसे उत्पन्न करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 94

  3. SQL सर्वर एक्सप्रेस संस्करण में नौकरियां कैसे पैदा करें

  4. मैं निरंतर श्रेणियों पर समूह कैसे बनाऊं

  5. ओवरलैपिंग दिनांक सीमाओं को हटाएं और कम करें