অ্যাক্সেস ডাটাবেসের একটি প্রশ্নের মাধ্যমে একাধিক কলাম একত্রিত করুন


3

আমাকে এমন একটি ক্যোয়ারী লিখতে হবে যা পাঠ্যের একাধিক কলাম সংযুক্ত করে।

আমার ডাটাবেসটি আমার কম্পিউটারে ওয়ালপেপারের একটি ডাটাবেস (আমি জন এর পটভূমি স্যুইচার ব্যবহার করি), তাই আমি সহজেই তাদের সন্ধান করতে এবং সেগুলিকে শ্রেণিবদ্ধকরণ করতে পারি।

প্রতিটি রেকর্ডে 4 টি চরিত্রের ক্ষেত্র রয়েছে (আমি বুঝতে পারি যে এটি একটি ট্যাগ শৈলীর চেয়ে বেশি কাজ করা সহজ) দয়া করে মনে রাখবেন যে কয়েকটি চরিত্রের ক্ষেত্র খালি রয়েছে।

এছাড়াও, যদি এটি করার সহজ উপায় থাকে তবে দয়া করে আমাকে জানান।

আমি যা চাই তার একটি নমুনা এখানে দেওয়া হল:

(table)
col1|col2|col3    
x   |y   |z    
c   |    |    

(query output)    
outputcol    
x    
y
z  
c

1
আমি জানি আপনি এটি "অ্যাক্সেস" দিয়ে ট্যাগ করেছেন, তবে আপনি প্রশ্নের টেক্সটে আপনি যে ডাটাবেসটি ব্যবহার করছেন তা উল্লেখ করে আপনার পক্ষে ভাল লাগবে।
wfaulk

উত্তর:


1

হয়তো এই?

SELECT col1 FROM table
UNION
SELECT col2 FROM table
UNION
SELECT col3 FROM table
UNION
SELECT col4 FROM table

UNIONশুধুমাত্র স্বতন্ত্র মানগুলিতে যোগদান করে (যদি আপনার 4 'টি' মান থাকে তবে এটি কেবল একটি রাখে)। UNION ALLসদৃশ সংরক্ষণ করবে


2

@ এ বামন, SELECT Column1 + Column2 + Column3এতক্ষণ কাজ করবে যতক্ষণ না সমস্ত কলামগুলি পাঠ্য এবং শূন্য নয়।

||ওরাকল এর কনক্যাটেনশন অপারেটর। অ্যাক্সেস জন্য এটি &

সুতরাং একটি ভাল বিবৃতি হবে

SELECT Column1 & Column2 & Column3 as NewColumn FROM MyTable  

স্পষ্টতই যদি আপনি স্পেস সেপারেটর চান তবে তা হয়ে যায়

SELECT Column1 & " " & Column2 & " " & Column3 as NewColumn FROM MyTable

&অপারেটর একটি খালি স্ট্রিং হিসেবে নাল মান বিবেচনা করে।

আপনি যদি অতিরিক্ত জায়গাগুলি প্রদর্শিত না চান তবে আপনি এর মতো কিছু ব্যবহার করতে পারেন

SELECT Nz([Column1] + " ","") & Nz([Column2] + " ","") & [Column3]

সম্পাদনা: আপনিও যদি আলাদা আলাদা কলামগুলি যুক্ত সংস্করণ হিসাবে অন্তর্ভুক্ত করতে চান তবে কেবল তাদের তালিকাভুক্ত করুন, যেমন।

SELECT Column1 & " " & Column2 & " " & Column3 as NewColumn, Column1, Column2, Column3 FROM MyTable

ওপি'র উদাহরণ আউটপুট পড়ার পরে সম্পাদনা করুন।

দেখা যাচ্ছে যে আমরা সবাই ওপি যা চেয়েছিল ঠিক তা-ই করছি না। সুতরাং আপনি যা চাইছেন তা অর্জন করতে আপনি যে উদাহরণটি দেখিয়েছেন তা আপনার প্রয়োজন।

SELECT Column1 FROM MyTable WHERE Column1 Is Not Null and Column1<>""  
UNION ALL  
SELECT Column2 FROM MyTable WHERE Column2 Is Not Null and Column2<>""  
UNION ALL  
SELECT Column3 FROM MyTable WHERE Column3 Is Not Null and Column3<>""  

আপনি যদি সদৃশগুলি মুছে ফেলতে চান তবে আপনাকে কেবল শব্দটি সরিয়ে ফেলতে হবে ALL, যাতে আপনি পান

SELECT Column1 FROM MyTable WHERE Column1 Is Not Null and Column1<>""  
UNION  
SELECT Column2 FROM MyTable WHERE Column2 Is Not Null and Column2<>""  
UNION  
SELECT Column3 FROM MyTable WHERE Column3 Is Not Null and Column3<>""  

স্পষ্টতই আপনি UNION SELECT...যতবার প্রয়োজন ততবার পুনরাবৃত্তি করতে পারেন ।


+1 টি। প্রকৃতপক্ষে. কলামগুলিতে যদি এগুলি প্রত্যাশিত হয় তবে নাল মানগুলি নির্মূল করার জন্য একটি WHERE ধারাটি অন্তর্ভুক্ত করতে পারে।
এ বামন

আমি ধরেই নিয়েছিলাম যে সমস্ত কলামগুলি একটি একক রেকর্ডের জন্য বাতিল নয়, সুতরাং আপনি সম্ভবত ফলাফলগুলি থেকে তাদের বাদ দিতে চাইবেন না।
পিপইজিক

এবং আপনি সম্ভবত সঠিকভাবে ধরে নিয়েছেন। যদিও পয়েন্টটি হ'ল যদি এটি না হয় তবে কেউ নালটির জন্য ক্লজ টেস্টিং ব্যবহার করতে চাইবে।
একটি বামন

এটি বেশিরভাগ ক্ষেত্রেই কাজ করে, এতে কিছু খালি রেকর্ড এবং কিছু পুনরাবৃত্তি অন্তর্ভুক্ত থাকে তবে আমি আপনাকে ধন্যবাদ ধন্যবাদ ঠিক করতে পারি।
পাগলব্যান্প

বাস্তবে, অপেক্ষা করুন, এটি কেবল স্ট্রিংগুলি একসাথে রাখে, প্রতিটি পৃথক ক্ষেত্রের ক্যোয়ারিতে তার নিজস্ব রেকর্ডের প্রয়োজন।
পাগলব্যান্প

0
SELECT (Column1 + Column2 + Column3 + Column4)
FROM YourTable

উপরের চারটি কলামকে একত্রিত করবে। আপনার যদি কোনও স্পেস বিভাজক প্রয়োজন:

SELECT (Column1 + " " + Column2 + " " + Column3 + " " + Column4)
FROM YourTable

সুতরাং প্লাস চিহ্নটি একটি কনটেটেনেটর হিসাবে কাজ করে। শেষ অবধি, যদি আপনাকে ফলাফলটির কলামটির নাম দিতে হয়:

SELECT (Column1 + Column2 + Column3 + Column4) AS ColumnName
FROM YourTable

একটি সর্বশেষ নোট, আমি যখন অ্যাক্সেসে সর্বশেষে কাজ করেছি তখন থেকে বহু যুগ ধরে, তবে আমি মনে করি আপনিও ক্ষেত্রগুলি সংক্ষিপ্ত করতে সক্ষম হতে পারেন || অপারেটর:

SELECT (Column1||Column2||Column3||Column4)
FROM YourTable

এই উত্তরের মন্তব্যে অনুসরণ করে, বিভিন্ন ডাটাবেস ইঞ্জিনগুলি বিভিন্ন সিনট্যাক্স সরবরাহ করতে পারে। একটি বিরক্তি, সন্দেহ নেই:

SELECT Column1 & Column2 & Column3 & Column4
FROM YourTable

এখানে আমরা অনেকগুলি উইন্ডোজ অ্যাপ্লিকেশনগুলিতে উপস্থিত '+'টিকে যথাযথ' এবং 'কনটেন্টেশন প্রতীক দিয়ে প্রতিস্থাপন করেছি।

চিয়ার্স


কোনও কারণে এটি প্রথম সারণীতে রেকর্ড সংখ্যার সমান ফাঁকা মান পূর্ণ একটি টেবিল দেয়।
পাগলব্যান্প

ত্রুটি ... আপনি কি কলাম 1, কলাম 2 ইত্যাদি বাস্তব কলামের নাম দিয়ে প্রতিস্থাপন করেছেন? দুঃখিত, আমি জানি এটি একটি প্রাথমিক প্রশ্ন তবে আমি দেখতে পাচ্ছি না আপনি কেন ফাঁকা মান পাচ্ছেন
একটি বামন

হ্যাঁ, আমি সমস্ত ট্যাগ প্রতিস্থাপন করেছি; সমস্ত কলাম কলামের নাম এবং আপনার টেবিল
পাগলম্যান

ঠিক আছে. অন্যান্য সম্ভাবনা অন্তর্ভুক্ত করার জন্য আমার উত্তর সম্পাদনা করা। একটি মুহুর্ত ...
একটি বামন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.