কম্পিউটার টিউটোরিয়াল

SAP DB-এ নির্দিষ্ট মাস থেকে SQL কোয়েরি রান করা (ORDER BY CASE)

SAP ডাটাবেসে (SQL Server/Oracle/HANA) যখন একটি ক্যারেক্টার ফিল্ড (যেমন T0.Name) এ মাসের নাম বা নম্বর স্ট্রিং হিসেবে থাকে, এবং সেটি নির্দিষ্ট মাস (যেমন আগস্ট = ৮) থেকে শুরু করে ক্রমবদ্ধ করতে হয়, তবে ORDER BY ক্লজে CASE এক্সপ্রেশন ব্যবহার করে কাস্টম সর্টিং করা হয়।

SQL কোয়েরি উদাহরণ

ORDER BY CASE
  WHEN CAST(LEFT(T0.Name, 2) AS INT) >= 8
    THEN CAST(LEFT(T0.Name, 2) AS INT) - 8
  ELSE CAST(LEFT(T0.Name, 2) AS INT) + 4
END

লজিক ব্যাখ্যা

  • LEFT(T0.Name, 2) — ফিল্ডের প্রথম ২ ক্যারেক্টার (মাস নম্বর, যেমন "01", "08", "12")।
  • CAST(... AS INT) — স্ট্রিংকে ইন্টিজারে কনভার্ট।
  • WHEN ... >= 8 THEN ... - 8 — মাস ৮ (আগস্ট) বা তার পরে হলে, ৮ বিয়োগ করে (আগস্ট=০, সেপ্টেম্বর=১, ..., ডিসেম্বর=৪)۔
  • ELSE ... + 4 — মাস ৮ এর আগে হলে (জানুয়ারি-জুলাই), ৪ যোগ করে (জানুয়ারি=৫, ..., জুলাই=১১)۔
  • ফলাফল: সর্ট অর্ডার হবে — আগস্ট, সেপ্টেম্বর, অক্টোবর, নভেম্বর, ডিসেম্বর, জানুয়ারি, ফেব্রুয়ারি, ..., জুলাই।

উপযোগিতা

  • ফাইনেনশিয়াল ইয়ার (Financial Year) শুরুর মাস অনুযায়ী রিপোর্ট সর্টিং।
  • SAP-এ ফিস্ক্যাল ইয়ার ভেরিয়েন্ট (Fiscal Year Variant) হ্যান্ডলিং।
  • ক্যারেক্টার ফিল্ডে স্টোর করা ন্যümerিক মাস সর্ট করার জন কোনো কনভারশন ফাংশন ছাড়া সঠিক সর্টিং নিশ্চিত করে।

মূল পয়েন্টসমূহ

  • CASE এক্সপ্রেশন ORDER BY-এ কাস্টম সর্ট লজিক ইমপ্লিমেন্ট করতে সাহায্য করে।
  • CAST + LEFT/SUBSTRING দিয়ে স্ট্রিং থেকে নম্বর বের করুন।
  • পারফরম্যান্স: বড় টেবিলে কম্পিউটেড কলাম বা পারশিয়াল ইন্ডেক্স বিবেচনা করুন।
  • SAP HANA-এ TO_INT বা SUBSTRING ফাংশন ব্যবহার করুন।
  1. MySQL SELECT কোয়েরি নির্দিষ্ট মাস ও বছরের রেকর্ড রিটার্ন করার জন্য

  2. MySQL 저장 프로시저에서 현재 데이터베이스 이름 가져오기

  3. MySQL-এ SELECT কোয়েরি থেকে নির্দিষ্ট কলামের রেকর্ড কীভাবে পেতে হয়?

  4. MySQL-এ নির্দিষ্ট শর্ত অনুযায়ী সিঙ্গেল রো বের করা