Первый вариант работает со всеми СУБД, второй - только с теми, которые поддерживают ключевое слово LIMIT, которое не является стандартным. Поэтому, если вы хотите указать базе данных, что хотите ограничить результат одной строкой, лучше использовать ядро SQLAlchemy вместо оператора SQL в качестве строки. Что-то вроде:
row = session.execute(select([some_table.c.some_col]).limit(1)).fetchone()
Если вы действительно запрашиваете только одну строку с одним столбцом, вы можете рассмотреть scalar()
вместо fetchone()
:
value = session.execute(select([some_table.c.some_col]).limit(1)).scalar()