CData Python Connector for Odoo

Build 24.0.8963

Other SQL Clauses

SQLAlchemy ORM also exposes support for other clauses in SQL, such as ORDER BY, GROUP BY, LIMIT, and OFFSET. All of these are supported by this connector:

ORDER BY

The following example sorts by a specified column using the session object's query() method:
rs = session.query(res_users).order_by(res_users.meeting_count)
for instance in rs:
	print("id: ", instance.id)
	print("name: ", instance.name)
	print("email: ", instance.email)
	print("---------")

You can also use the session object's execute() method perform an ORDER BY. For example:

rs = session.execute(res_users_table.select().order_by(res_users_table.c.meeting_count))
for instance in rs:

GROUP BY

The following example uses the session object's query() method to group records with a specified column:
rs = session.query(func.count(res_users.id).label("CustomCount"), res_users.name).group_by(res_users.name)
for instance in rs:
	print("Count: ", instance.CustomCount)
	print("name: ", instance.name)
	print("---------")

You can also use the session object's execute() method to perform a GROUP BY:

rs = session.execute(res_users_table.select().with_only_columns([func.count(res_users_table.c.id).label("CustomCount"), res_users_table.c.name]).group_by(res_users_table.c.name))
for instance in rs:

LIMIT and OFFSET

The following example uses the session object's query() method to skip the first 100 records and fetch the following 25:
rs = session.query(res_users).limit(25).offset(100)
for instance in rs:
	print("id: ", instance.id)
	print("name: ", instance.name)
	print("email: ", instance.email)
	print("---------")

You can also use the session object's execute() method to set a LIMIT or OFFSET:

rs = session.execute(res_users_table.select().limit(25).offset(100))
for instance in rs:

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.8963