بله. توضیح دادم چرا. چون طراحی جدول شما اشتباه هست. اگر عدد وارد میکنید، نوع فیلد را int تعیین کنید. مابقی آن به صورت خودکار درست میشود (و نیازی به هیچ نکتهی خاصی هم ندارد). اگر الزامی به ورود رشته هست، باید بجای 10 بنویسید 010 تا مقایسهها درست شوند (این 0های پیش از اعداد باید تعداد کاراکترها را به تعداد کاراکترهای بزرگترین عدد رشتهای که دارید برساند؛ اگر بزرگترین عدد شد 1000 باید تمام اینها را به 0010 اصلاح کنید). چون اینها رشته هستند نه عدد. تمام دادهها وارد شده هم باید به همین صورت اصلاح شوند. روش دیگر هم این است که مستقیما SQL بنویسید و (cast(code as int کنید. راه دیگری ندارد. حتی کوئری SQL ایی هم که در بالا نوشتید جواب نمیدهد چون cast as int ندارد. بنابراین سادهترین و منطقیترین روش، انتخاب نوع فیلد مناسب هست.
SELECT * FROM document WHERE CAST(code AS INT) > 1 and CAST(code AS INT) < 10