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

एसक्यूएल में सबक्वायरी के साथ LIKE और IN का उपयोग करें

आप जिस स्ट्रिंग से मेल खा रहे हैं और userid . वाली स्ट्रिंग दोनों को लपेट सकते हैं आप , . में मिलान करना चाहते हैं सीमांकक ताकि आप सुनिश्चित करें कि आप एक पूर्ण userid . से मेल खाते हैं (मूर्खता से LIKE . का उपयोग करने के बजाय आसपास के सीमांककों पर विचार किए बिना और केवल आंशिक userid . से मेल खाते हुए ) इस तरह:

SELECT *
FROM   "USER" u
WHERE  EXISTS (
  SELECT 1
  FROM   special_user su
  WHERE  ', ' || u.userpeers || ', ' LIKE '%, ' || su.userId || ', %'
)

जो, नमूना डेटा के लिए:

CREATE TABLE "USER" ( UserID, UserPeers, Gender ) AS
SELECT 'Mike',  'Tom1, Bob1',   'M' FROM DUAL UNION ALL
SELECT 'John',  'Tom1, Greg1',  'M' FROM DUAL UNION ALL
SELECT 'Sally', 'Mike1, John1', 'F' FROM DUAL UNION ALL
SELECT 'Sara',  'Sally1, Bob1, TimTom1', 'F' FROM DUAL;

CREATE TABLE special_user ( UserID ) AS
SELECT 'Tom1' FROM DUAL UNION ALL
SELECT 'John1' FROM DUAL;

नोट:मैंने Sally बदल दिया है एक सहकर्मी जोड़ने के लिए TimTom1 Tom1 . के बावजूद इसका मिलान नहीं होना चाहिए सबस्ट्रिंग शामिल है।

कौन सा आउटपुट:

db<>fiddle यहां



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में गतिरोध का इतिहास?

  2. क्या डीबीए विशेषाधिकार के बिना ओरेकल उपयोगकर्ता तालिका विशेषाधिकार देखना संभव है?

  3. oracle में किसी अन्य तालिका से तालिका अद्यतन करें

  4. एफएनडीसीपास और AFPASSWD

  5. ओरा-04091 तालिका उत्परिवर्तनीय है-