यह आपके विशेष प्रश्न का उत्तर हां या ना में देगा। मुझे यकीन नहीं है कि यह उपयोगी है क्योंकि हार्ड-कोडेड सूची में दिनांक खोज मान सभी विशिष्ट हैं।
select coalesce(max('no'), 'yes') as available
from tbl t
where room_type_id = 23 and
dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00",
"2018-03-08 00:00:00", "2018-03-09 00:00:00");
यदि आपके तर्क का अर्थ कम से कम एक खुला खोजने का है तारीख तो आप कुछ इस तरह की कोशिश कर सकते हैं:
select case when count(*) = 4 then 1 else 0 end as whatever_this_means
from tbl t
where room_type_id = 23 and
dt in ("2018-03-06 00:00:00", "2018-03-07 00:00:00",
"2018-03-08 00:00:00", "2018-03-09 00:00:00");
समस्या यह होने जा रही है कि आपने अब मान 4 को हार्ड-कोड किया है जो बाद में क्वेरी में सूची में तिथियों की संख्या से जुड़ा हुआ है। इसे और अधिक गतिशील रूप से संभालने के तरीके हैं लेकिन यह आपके प्रश्न से पूरी तरह स्पष्ट नहीं है कि ऐसा करने का सबसे अच्छा तरीका क्या है।