در جدول sales ستونی به نام amount_text (رشته‌ای) وجود دارد؛ با استفاده از تابع CONVERT مقادیر این ستون را به DECIMAL(10,2) تبدیل کنید و خروجی شامل id، amount_text و مقدار تبدیل‌شده amount_decimal را فقط برای ردیف‌هایی که مقدار متنی عددی معتبر دارند نمایش دهید.

11.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:58

0.0

برای انجام این کار از تابع CONVERT(expr, DECIMAL(10,2)) یا معادل آن CAST(expr AS DECIMAL(10,2)) در MySQL استفاده کنید؛ توجه داشته باشید که تبدیل رشته‌های نامعتبر به عدد در MySQL معمولاً صفر تولید می‌کند، بنابراین قبل از تبدیل از یک شرط REGEXP برای اعتبارسنجی الگوی عددی استفاده کنید. مثال راهنما: SELECT id, amount_text, CONVERT(amount_text, DECIMAL(10,2)) AS amount_decimal FROM sales WHERE amount_text REGEXP '^-?[0-9]+(\\.[0-9]+)?$';

توسط پژوهشگر در 201 روز قبل ساعت 03:58
دسته بندی ها: MySQL MySQL for beginner
reyhaneh در 201 روز قبل ساعت 04:31

نکته مفید این است که قبل از تبدیل رشته به DECIMAL(10,2) باید فقط ردیف‌های عددی معتبر را انتخاب کنید. استفاده از REGEXP مانند '^-?[0-9]+(\\.[0-9]+)?$' تضمین می‌کند که مقادیر متنی فقط اعداد منفی یا مثبت و اعشار معتبر باشند. سپس می‌توانید از CONVERT(amount_text, DECIMAL(10,2)) یا CAST(amount_text AS DECIMAL(10,2)) استفاده کنید تا مقدار decimal به دست آید. به خاطر داشته باشید که بدون فیلتر REGEXP، تبدیل رشته‌های نامعتبر معمولاً به صفر منتهی می‌شود و نتایج ناپایدار ایجاد می‌کند.

گزارش

1 پاسخ

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

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