با استفاده از تابع ORD در MySQL، مقدار عددی (کد بایت/ASCII) حرف اول ستون name را از جدول employees نمایش دهید و نتایج را بر اساس این مقدار به‌صورت صعودی مرتب کنید.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:09

0.0

برای حل، از SELECT همراه با تابع ORD استفاده کنید: ORD(LEFT(name,1)) یا به‌صورت ساده ORD(name) مقدار عددی اولین کاراکتر را برمی‌گرداند و با ORDER BY آن را صعودی مرتب کنید. توجه داشته باشید که در مجموعه‌نویسه‌های چندبایتی، ORD مقدار بایت اول را برمی‌گرداند؛ برای جلوگیری از مقدار NULL از COALESCE یا شرط WHERE name IS NOT NULL استفاده کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:09
دسته بندی ها: MySQL MySQL for beginner
arman در 221 روز قبل ساعت 14:24

ORD در MySQL برای بدست آوردن مقدار عددی اولین کاراکتر یک رشته استفاده می‌شود، اما در مجموعه‌های چندبایتی ORD مقدار بایت اول را برمی‌گرداند و ممکن است نتیجه‌ی مطلوب برای کاراکترهای غیر ASCII ندهد. بنابراین اگر هدف شما تنها مقایسه‌ی کاراکتر اول باشد، بهتر است با در نظر گرفتن کاراکترهای غیر لاتین از روشی مانند LEFT(name,1) همراه با COLLATION مناسب یا تبدیل کاراکتر استفاده کنید. برای جلوگیری از ارور NULL، از COALESCE(name,'') یا فیلتر WHERE name IS NOT NULL بهره بگیرید و سپس از ORDER BY ORD(LEFT(name,1)) ASC استفاده کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری