با استفاده از تابع LEAST کوچک‌ترین مقدار رشته‌ای از میان سه ستون name1، name2 و name3 را برای هر ردیف جدول people استخراج کنید.

1.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:57

0.0

برای حل مسئله از SELECT همراه با تابع LEAST استفاده کنید، مثلاً: SELECT id, LEAST(name1, name2, name3) AS smallest_name FROM people; توجه داشته باشید LEAST مقایسه لغت‌نامه‌ای (lexicographical) انجام می‌دهد و اگر هر یک از آرگومان‌ها NULL باشد خروجی NULL خواهد شد — برای جلوگیری از این حالت می‌توانید از COALESCE برای جایگزینی مقدار پیش‌فرض استفاده کنید (مثلاً COALESCE(name1, '')). همچنین می‌توانید نتیجه را با alias ذخیره کرده و در ORDER BY یا شروط WHERE استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:57
دسته بندی ها: MySQL MySQL for beginner
arman در 202 روز قبل ساعت 07:57

برای جلوگیری از بازگشت NULL توسط LEAST بهتر است هر ستون را با COALESCE به مقدار غیر NULL تبدیل کنید. مثلاً: LEAST(COALESCE(name1, ''), COALESCE(name2, ''), COALESCE(name3, '')) که کوچک‌ترین مقدار رشته‌ای هر ردیف را برمی‌گرداند. اگر می‌خواهید NULL نقش کمتری در نتیجه داشته باشد، می‌توانید به جای '' از یک مقدار بزرگ مانند 'zzzz' استفاده کنید تا NULLها موجب کوچک شدن نتیجه نشوند. همچنین می‌توانید نتیجه را با alias ذخیره کنید و در ORDER BY یا WHERE از آن استفاده کنید.

گزارش

1 پاسخ

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

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