
نوشته شده توسط
sg.programmer
تشکر آقای مرادی
و تشکر آقای
Mahmoud.Afrad خیلی جالب بود:
این کد چه معنی برای
Null داره من صفر که میزارم جواب کلی میده : اگه زحمتی نیست توضیحی برای این کد بدید
case when x>=1 and x<=14 then x else null end
در تابع count هر چیزی شمارش میشه غیر null. اگر x در بازه بود x را میشمارد و اگر نبود null را. البته null (یعنی هیچی) در شمارش تاثیری ندارد. به همین دلیل هر مقداری(حتی صفر) در else باشد در شمارش تاثیر میگذارد و تعداد کلی میده.
با count نوشتم تا متوجه بشید البته با sum هم میشه نوشت به اینصورت که به ازای هر x اگر در بازه بود، عدد یک و در غیراینصورت صفر را در نظر بگیرد و این مقدارها(صفرها و یکها) را sum کند
select
SUM(case when x>=1 and x<=14 then 1 else 0 end) 'range1',
SUM(case when x>=16 and x<=30 then 1 else 0 end) 'range2',
SUM(case when x>=31 then 1 else 0 end) 'range3'
from [Table_Name]