در جدول employees ستون full_name شامل «نام نامخانوادگی» است؛ با استفاده از تابع SUBSTRING یک پرسوجو بنویسید که فقط نام (بخش قبل از اولین فاصله) را استخراج کند.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:11 0.0
در MySQL از تابع SUBSTRING به همراه LOCATE (یا INSTR) برای پیدا کردن موقعیت اولین فاصله و برش رشته استفاده کنید؛ مثلاً SUBSTRING(full_name, 1, LOCATE(' ', full_name) - 1). توجه کنید برای مقادیر بدون فاصله از CASE یا IFNULL/IF و یا استفاده از شرطی مانند LOCATE(' ', full_name) = 0 برای بازگرداندن کل رشته یا NULL استفاده کنید. این یک تمرین ساده در توابع رشتهای و پرسوجوهای انتخابی است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای استخراج نام فقط از full_name که با یک فاصله از نامخانوادگی جدا شده، میتوانید از SUBSTRING(full_name, 1, LOCATE(' ', full_name) - 1) استفاده کنید. اگر نام بدون فاصله باشد، باید با CASE یا IF رفتار مناسب را بدهید تا کل رشته بازگردد یا NULL شود. قبل از برش، بهتر است TRIM را روی full_name اعمال کنید تا فاصلههای اضافی حذف شوند. توجه داشته باشید که LOCATE میتواند نتیجهای ناخواسته بدهد اگر مقدار NULL یا رشته خالی باشد و در این صورت میتوانید با IFNULL از نتیجه محافظت کنید.
گزارش