In SQL Server, how to filter lots of elements across multiple columns -
मेरे पास एक तालिका है, t1
, कॉलम जैसे name
, code1
, code2
, ..., code20
कहें, 100K पंक्तियाँ हैं।
मुझे एक और लुक अप तालिका है, t2
, जिसमें एक कॉलम है, कोड
; इसकी 10 क पंक्तियाँ हैं और प्रत्येक पंक्ति में एक कोड है। इसलिए, इस 1-कॉलम तालिका में पूरी तरह से 10 के कोड हैं।
मुझे t1
में सभी पंक्तियों को फ़िल्टर करने की आवश्यकता है, जिसके पास कोड t2 किसी भी स्तंभ से, अर्थात कॉलम
code1
से code20
। दूसरे शब्दों में, t1
में प्रत्येक पंक्ति में, कॉलम में एक कोड t2
में एक बार होता है, इसे कब्जा कर लिया जाना चाहिए।
क्या ऐसा करने का एक आसान तरीका है? बहुत बहुत धन्यवाद!
यह मौजूद नहीं है
का उपयोग करने का एक तरीका है :
टी 1 से चुनें। * टी 1 से जहां मौजूद नहीं है (टी 2 से 1 का चयन करें जहां टी 2 सीडोड = टी 1 सीडीडीए या टी 2 सीडोड = टी 1 सीडोड 2 या टीएसकोड = टी 1 .code20);
नेस्टेड चयन में शर्त के रूप में में
का उपयोग करने के लिए मोहक है, लेकिन यह NULL
s के साथ कायरता तरीके से व्यवहार करता है प्रत्यक्ष तुलना का क्रम आसान है।
उसमें कहा गया है, एक ही प्रकार के डेटा के साथ 20 कॉलम होने पर आमतौर पर खराब तालिका डिजाइन का संकेत मिलता है। अधिक सामान्यतया, डेटा किसी प्रकार के एसोसिएशन / जंक्शन टेबल में होगा, जिसमें 20 कॉलम प्रत्येक अपनी पंक्ति में दिखेंगे।
Comments
Post a Comment