সঙ্গে স্ট্রিং টাইপ মত কলাম character(2)
(যেমন আপনি পরে উল্লিখিত), প্রদর্শিত সংযুক্তকরণের মাত্র কারণ কাজ করে, ম্যানুয়াল উদ্ধৃত:
[...] স্ট্রিং কনটেনটেশন অপারেটর ( ||
) নন-স্ট্রিং ইনপুট গ্রহণ করে, যতক্ষণ না সারণী 9.8 তে দেখানো হয়েছে সে হিসাবে
কমপক্ষে একটি ইনপুট স্ট্রিং প্রকারের হয় । অন্যান্য ক্ষেত্রে, একটি সুস্পষ্ট জোর inোকান [...]text
বোল্ড জোর আমার। ২ য় উদাহরণ ( select a||', '||b from foo
) টাইপ না করে টাইপ করা স্ট্রিং আক্ষরিক ডিফল্ট যে কোনও ক্ষেত্রে পুরো এক্সপ্রেশনটিকে বৈধ করে তুলতে কোনও ডেটা ধরণের জন্য কাজ করে ।', '
text
নন-স্ট্রিং ডেটা প্রকারের জন্য, আপনি কমপক্ষে একটি যুক্তি কাস্ট করে the ম বিবৃতিটি "ঠিক" করতে পারেন text
। (যে কোনও প্রকারে কাস্ট করা যেতে পারে text
):
SELECT a::text || b AS ab FROM foo;
আপনার নিজের উত্তর থেকে বিচার করা , " কাজ করে না " এর অর্থ " NULL প্রদান করে " বলে মনে করা হয়েছিল । NUL- তে জড়িত কোনও কিছুর ফলাফল হ'ল নুল। যদি NULL মানগুলি জড়িত থাকতে পারে এবং ফলাফলটি NULL না concat_ws()
হয় তবে যে কোনও সংখ্যক মানকে পোস্ট করতে (9.1 বা তারপরের পরে পোস্ট করা) ব্যবহার করুন:
SELECT concat_ws(', ', a, b) AS ab FROM foo;
অথবা আপনার concat()
যদি পৃথককারীগুলির প্রয়োজন না হয়:
SELECT concat(a, b) AS ab FROM foo;
উভয় ফাংশন "any"
ইনপুট নেয় এবং পাঠ্য উপস্থাপনার সাথে কাজ করে বলে এখানে টাইপ কাস্টের প্রয়োজন নেই ।
সম্পর্কিত সম্পর্কিত আরও বিশদ (এবং কেন COALESCE
একটি দরিদ্র বিকল্প):
+
পোস্টগ্রিসে (বা স্ট্যান্ডার্ড এসকিউএল) স্ট্রিং কনটেনটেশনের জন্য কোনও বৈধ অপারেটর নয়। এটি তাদের পণ্যগুলিতে যুক্ত করা মাইক্রোসফ্টের একটি ব্যক্তিগত ধারণা।
ব্যবহারের জন্য খুব ভাল কোনও কারণই নেই character(n)
(প্রতিশব্দ char(n)
:)। ব্যবহার করুন text
বাvarchar
। বিবরণ:
text
?