2011-03-09 19 views
21

यदि मेरे पास एक डेटाबेस है जो मेरे डेटाबेस में पता 1 और पता 2 है, तो मैं उन कॉलम को कैसे जोड़ूं ताकि मैं केवल अपने चुने हुए कथन में संचालन कर सकूं, मैं अभी भी उन्हें अलग कर दूंगा डेटाबेस में मैं यहएसक्यूएल चयन वक्तव्य में दो स्तंभों को मिलाएं

WHERE completeaddress LIKE '%searchstring%' 

जहां पूरा हो गया पता पता 1 और पता 2 का संयोजन है। सर्चस्ट्रिंग उनके द्वारा खोजे गए डेटा की तरह होगी। इसलिए यदि पता 2 में '123 सेंटर सेंट' और पता 2 में 'Apt 3B' था, तो सर्चस्ट्रिंग 'सेंटर सेंट 3 बी' क्या है, तो एसक्यूएल के साथ यह संभव है कि मैं इसे कैसे चुनूं?

+3

इसके लिए आपको पूर्ण टेक्स्ट अनुक्रमण में देखना होगा। समेकित परिणाम '123 केंद्र सेंट एट 3 बी 'होगा जो' सेंट सेंट 3 बी' –

+0

से मेल नहीं खाता है, लेकिन अगर मैं नीचे दिए गए उत्तर के अनुसार' SOUNDEX' का उपयोग कर रहा हूं, तो ऐसा लगता है। – anothershrubery

+0

@anothershrubery - मैंने एक वास्तविक दुनिया के अनुप्रयोग में एक बार 'ध्वनि' का उपयोग किया और परिणाम समाप्त कर दिया क्योंकि परिणाम विचित्र थे और कोई भी उन्हें समझ नहीं पाया। 'SOUNDEX (' 123 सेंटर सेंट एप 3 बी '), SOUNDEX (' सेंटर सेंट 3 बी ')' रिटर्न '0000, सी 536' –

उत्तर

39

- -

select Address1+Address2 as CompleteAddress from YourTable 
where Address1+Address2 like '%YourSearchString%' 

एक मिश्रित शब्द बनाया जा रहा है जब हम पता 1 संलग्न को रोकने के लिए हालांकि, अगर आपकी searchstring 'Center St Apt' था, तो आप इसे उपयोग कर सकते हैं address2 साथ, आप इसका उपयोग कर सकते हैं -

select Address1 + ' ' + Address2 as CompleteAddress from YourTable 
where Address1 + ' ' + Address2 like '%YourSearchString%' 

तो, '123 केंद्र सेंट' और 'अपार्टमेंट 3 बी' '123 केंद्र StApt 3 बी' नहीं होगा, लेकिन '123 केंद्र सेंट अपार्टमेंट 3 बी' हो जाएगा।

+5

मैं चाहता हूं कि इस प्रश्न का उत्तर देने वाले प्रत्येक व्यक्ति को दो कॉलम एक साथ जोड़ना बंद कर दें - शायद ही कभी, यदि आप कभी भी, पते 1 में अंतिम शब्द और पता 2 में पहला शब्द से एक नया संकर शब्द बनाना चाहते हैं - तो आप बीच में एक जगह डाल सकते हैं । –

+0

@Damien_The_Unbeliever मेरा जवाब अपडेट किया गया। – pavanred

+0

@atrljoe - मुझे यकीन नहीं है कि इस प्रश्न में दिए गए अनुसार 'सेंटर सेंट 3 बी' स्ट्रिंग के लिए यह खोज कैसे होगी? –

1

यदि आपका address1 = '123 Center St' और फिर भले ही आप को संयोजित करके LIKE कर address2 = 'Apt 3B', आप 'Center St 3B' रूप searchstring पर खोज नहीं कर सकते। मुझे लगता है कि यह आपके लिए क्या देख रहे है

WHERE (address1 + ' ' + address2) LIKE '%searchstring%' 
0

आप अपने डेटाबेस स्कीमा को बदलने के लिए नहीं करना चाहते हैं (और मैं नहीं इस सरल प्रश्न के लिए होता है) आप सिर्फ उन्हें इस तरह फिल्टर में गठबंधन कर सकते हैं: WHERE (Address1 + Address2) LIKE '%searchstring%'

8

MySQL में आप उपयोग कर सकते हैं:

SELECT CONCAT(Address1, " ", Address2) 
WHERE SOUNDEX(CONCAT(Address1, " ", Address2)) = SOUNDEX("Center St 3B") 

SOUNDEX समारोह सबसे डाटाबेस सिस्टम में इसी तरह काम करता है, मैं समय में MSSQL के लिए वाक्य रचना नहीं सोच सकते हैं, लेकिन यह बहुत दूर ऊपर से दूर नहीं होगा।

+0

हालांकि SQL सर्वर में कोई CONCAT नहीं है। केवल MySQL में काम करेगा – Nik

0
SELECT StaffId,(Title+''+FirstName+''+LastName) AS FullName 
FROM StaffInformation 

आप कहाँ कर लिखने के साथ कोष्ठक में यह एक एकल स्तंभ में प्रदर्शित की जाएगी। कहाँ शीर्षक के बीच और नीचे पहला नाम लिखने वाक्य विन्यास में एक डॉट चाहते हैं,

SELECT StaffId,(Title+'.'+FirstName+''+LastName) AS FullName 
FROM StaffInformation 

ये वाक्य रचना एमएस एसक्यूएल सर्वर 2008 R2 एक्सप्रेस संस्करण के साथ काम करता है।

संबंधित मुद्दे