برای جدول employees با ستونهای id، first_name، middle_name و last_name یک کوئری MySQL بنویسید که ستونی به نام full_name ایجاد کند که با استفاده از CONCAT_WS و یک فاصله بین اجزای نام، نام کامل را بسازد و خروجی را بر حسب last_name مرتب کند.
1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:54 0.0
با استفاده از تابع CONCAT_WS(' ', first_name, middle_name, last_name) میتوانید اجزای نام را با یک فاصله به هم بچسبانید؛ مزیت CONCAT_WS این است که مقادیر NULL را نادیده میگیرد، بنابراین اگر middle_name خالی باشد، فاصله اضافی تولید نمیشود. کوئری را بهصورت SELECT id, CONCAT_WS(' ', first_name, middle_name, last_name) AS full_name FROM employees ORDER BY last_name بنویسید؛ در صورت وجود رشتههای خالی بهجای NULL میتوانید از NULLIF یا COALESCE برای تبدیل/مدیریت آنها استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از CONCAT_WS(' ', first_name, NULLIF(middle_name, ''), last_name) برای ساخت full_name مناسب است چون CONCAT_WS مقادیر NULL را نادیده میگیرد و بین اجزاء فقط یک فاصله میگذارد. اگر middle_name گاهی خالی است، NULLIF باعث میشود هیچ فاصله اضافی اضافه نشود. میتوانید با COALESCE یا NULLIF برای مدیریت مقادیر NULL یا رشتههای خالی، نتیجه را پایدارتر کنید. در نهایت، خروجی را با ORDER BY last_name مرتب کنید و در صورت نیاز از COLLATE مناسب برای حساسیت حروف استفاده کنید.
گزارش