با استفاده از توابع CONCAT، SUBSTRING، REPLACE و TRIM در SQL یک پرسوجوی SELECT بنویسید که از جدول employees ستونی به نام full_name (ترکیب نام و نامخانوادگی با حذف فاصلههای اضافی) و ستونی به نام area_code (سه رقم اول شماره تلفن پس از حذف کاراکترهای غیررقمی مانند فضا، پرانتز و خط تیره) تولید کند.
15.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 02:41 0.0
برای حل این مسئله از TRIM برای حذف فاصلههای اضافی در first_name و last_name و سپس CONCAT با یک فاصله بین آنها برای ساخت full_name استفاده کنید. برای گرفتن area_code ابتدا با توابع REPLACE متوالی کاراکترهای غیررقمی (مثلاً ' ', '(', ')', '-') را از phone_number حذف کنید و سپس با SUBSTRING سه کاراکتر اول رشتهٔ پاکشده را استخراج کنید. این توابع در دیتابیسهایی مثل MySQL، PostgreSQL و SQL Server قابل استفادهاند (توجه کنید که در برخی دیالکتها نام تابع SUBSTR بجای SUBSTRING است)؛ برای جلوگیری از خطا رشتهها را NULL-چک کنید و در صورت نیاز از تابع COALESCE یا شرط WHERE استفاده نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای ساخت full_name از TRIM روی first_name و last_name استفاده کنید و آنها را با CONCAT و یک فاصله میانی ترکیب کنید تا فاصلههای اضافی حذف شوند؛ برای area_code کاراکترهای غیررقمی را با REPLACEهای متوالی حذف کنید ولی اگر دیتابیستان REGEXP_REPLACE یا regexp_replace دارد بهتر است از آن برای خوانایی و پوشش تمام کاراکترهای غیرعددی استفاده کنید. قبل از اعمال SUBSTRING طول رشتهٔ پاکشده را چک کنید یا از COALESCE برای جلوگیری از NULL و خطا استفاده نمایید تا SUBSTRING روی رشتههای کوتاه یا NULL اجرا نشود. همچنین توجه کنید که نام توابع در دیالکتها متفاوت است (مثلاً SUBSTR در برخی سیستمها، یا LTRIM/RTRIM بهجای TRIM) و شمارههای بینالمللی ممکن است نیاز به منطق جداگانه داشته باشند.
گزارش