/ / कैसे tsql में शामिल होने के लिए - sql-server, sql-server-2008, tsql

tsql में instr कैसे करें - sql-server, sql-server-2008, tsql

मेरे पास 1000 मिलियन रिकॉर्ड के साथ एक विशाल तालिका है मैंसैकड़ों की संख्या के साथ छोटे टेबल से रिकॉर्ड का मिलान करना चाहते हैं विशाल तालिका में फुल_नाम (व्यक्ति का नाम, पहला नाम मिडिलनाम अंतिम नाम) दर्ज किया गया छोटी तालिका में 3 दर्ज किए गए हैं (TINY_TABLE.NAME_PART TINY_TABLE.NAME_PART TINY_TABLE.NAME_PART) लेकिन firstname / middlename / lastname को small_table में मिलाया जाता है।

यहां छवि विवरण दर्ज करें

अब मैं आंतरिक रूप से दोनों तालिकाओं में शामिल होना चाहता हूं और फजी मिलान करना चाहता हूं। मैं फुलटेक्स्ट खोज का उपयोग नहीं कर रहा / रही हूं या इसमें कमांड शामिल है क्या हम इसका उपयोग ज्वाइन कर सकते हैं (जैसे कि oracle में instr fuction)

if (
TINY_TABLE.NAME_PART_1  exists in  Huge_Table
and
TINY_TABLE.NAME_PART_2   exists in  Huge_Table
and
TINY_TABLE.NAME_PART_3   exists in  Huge_Table
)
then
Mark Matched
else
Mark UnMatched

उत्तर:

उत्तर № 1 के लिए 1

कुछ इस तरह की कोशिश करो। लेकिन यह एक कुशल कोड नहीं है।

SELECT DISTINCT a.fullname,
"Matched" [status]
FROM  (select distinct fullname from huge_table) a
JOIN tiny_table b
ON a.fullname LIKE "%" + namepart1 + "%"
AND a.fullname LIKE "%" + case when len(namepart2)=0 then " " else namepart2 end + "%"
AND a.fullname LIKE "%" + namepart3 + "%"
UNION
SELECT *,
"Not matched" [status]
FROM   huge_table