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

क्वेरी जहां नेस्टेड क्वेरी के परिणाम में दो कॉलम हैं

वास्तव में नहीं, इसे लिखने का कोई बेहतर तरीका नहीं है (Y को दो बार देखे बिना) X को देखते हुए कि myTable.X और myTable.YY का मिलान एक ही पंक्ति से नहीं हो सकता है।

एक विकल्प के रूप में, क्वेरी का EXISTS रूप है

select *
from myTable A
where exists (select * from Y where A.X = Y.X)
  and exists (select * from Y where A.XX = Y.X)

अगर Y में 1,2,3,4,5 . के X मान हैं , और x.x = 2 और x.xx = 4 , वे दोनों मौजूद हैं (Y में अलग-अलग रिकॉर्ड पर) और myTable से रिकॉर्ड आउटपुट में दिखाया जाना चाहिए।

संपादित करें:यह उत्तर पहले था कहा गया है कि You could rewrite this using _EXISTS_ clauses which will work faster than _IN_ से अधिक तेजी से काम करेगा . एएस मार्टिन ने बताया है, यह सच नहीं है (निश्चित रूप से SQL सर्वर 2005 और इसके बाद के संस्करण के लिए नहीं)। लिंक देखें



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसएसआईएस - एकाधिक कॉलम मानों को शून्य में कनवर्ट करें

  2. क्वेरी कोड में बहुत धीमी लेकिन SSMS में तेज़ है

  3. क्या हम एक ही पीसी उपयोगकर्ता पर एक्सप्रेस संस्करण और SQL सर्वर का मानक संस्करण स्थापित कर सकते हैं?

  4. SQL सर्वर में डेटाबेस की आईडी वापस करने के लिए DB_ID () का उपयोग करें

  5. हम SQL सर्वर के पेज का आकार कैसे बदल सकते हैं?