Python SQLAlchemy(sql)条件查询

Python SQLAlchemy(sql)条件查询,python,mysql,sql,sqlalchemy,Python,Mysql,Sql,Sqlalchemy,我有一个问题,我有一个这样的表产品,有两列target和actual,我如何构建一个查询并告诉它:如果target==那么从actual中选择。更清楚地说,这是我的表产品,有两列: actual | target --------------- p12 | <null> p14 | h20 p16 | <null> p16 | <null> p16 | <null> p16 | <null> p1

我有一个问题,我有一个这样的表产品,有两列target和actual,我如何构建一个查询并告诉它:如果target==那么从actual中选择。更清楚地说,这是我的表产品,有两列:

actual | target
---------------
  p12  | <null>
  p14  | h20
  p16  | <null>
  p16  | <null>
  p16  | <null>
  p16  | <null>
  p16  | <null>
因此,我想选择一个值'xx',如何在SQLAlchemy或sql中构建此条件,告诉它在列目标中查找它,但如果单元格为空,则在实际列单元格中查找它

这可能吗?

使用IFNULLTarget,实际值而不是目标值

ISnull是SQL,ifnull是mysql,对此很抱歉。

使用IFNULLTarget,实际值而不是目标值

ISnull是SQL,ifnull是mysql,对此很抱歉。

使用IFNULLTarget,实际值而不是目标值

ISnull是SQL,ifnull是mysql,对此很抱歉。

使用IFNULLTarget,实际值而不是目标值


ISnull是SQL,如果Null是mysql,很抱歉。

SQL有一个case语句。在这种情况下,它将类似于:

CASE MYTARGET当TARGET不为NULL时,则TARGET ELSE为实际值


我不是数据库专家,但我使用过这种结构。Mytarget是一个新列

SQL有一个case语句。在这种情况下,它将类似于:

CASE MYTARGET当TARGET不为NULL时,则TARGET ELSE为实际值


我不是数据库专家,但我使用过这种结构。Mytarget是一个新列

SQL有一个case语句。在这种情况下,它将类似于:

CASE MYTARGET当TARGET不为NULL时,则TARGET ELSE为实际值


我不是数据库专家,但我使用过这种结构。Mytarget是一个新列

SQL有一个case语句。在这种情况下,它将类似于:

CASE MYTARGET当TARGET不为NULL时,则TARGET ELSE为实际值

我不是数据库专家,但我使用过这种结构。Mytarget是一个新列

听起来像是要合并,它接受多个参数并返回第一个参数,该参数不是null,如果所有参数都为null,则返回null

假定设置合理:

import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Product(Base):
    __tablename__ = "product"
    id = sa.Column(sa.Integer, primary_key=True)
    actual = sa.Column(sa.String)
    target = sa.Column(sa.String)
使用sqlalchemy.func.coalesce:

编辑:如果缺少的值不是null,而是其他值,则应使用大小写表达式

>>> print session.query(sa.case([(Product.target == '', Product.actual)], else_=Product.target))
SELECT CASE WHEN (product.target = :target_1) THEN product.actual ELSE product.target END AS anon_1 
FROM product
听起来像是需要COALESCE,它接受多个参数并返回第一个参数,该参数不为null,如果所有参数都为null,则返回null

假定设置合理:

import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Product(Base):
    __tablename__ = "product"
    id = sa.Column(sa.Integer, primary_key=True)
    actual = sa.Column(sa.String)
    target = sa.Column(sa.String)
使用sqlalchemy.func.coalesce:

编辑:如果缺少的值不是null,而是其他值,则应使用大小写表达式

>>> print session.query(sa.case([(Product.target == '', Product.actual)], else_=Product.target))
SELECT CASE WHEN (product.target = :target_1) THEN product.actual ELSE product.target END AS anon_1 
FROM product
听起来像是需要COALESCE,它接受多个参数并返回第一个参数,该参数不为null,如果所有参数都为null,则返回null

假定设置合理:

import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Product(Base):
    __tablename__ = "product"
    id = sa.Column(sa.Integer, primary_key=True)
    actual = sa.Column(sa.String)
    target = sa.Column(sa.String)
使用sqlalchemy.func.coalesce:

编辑:如果缺少的值不是null,而是其他值,则应使用大小写表达式

>>> print session.query(sa.case([(Product.target == '', Product.actual)], else_=Product.target))
SELECT CASE WHEN (product.target = :target_1) THEN product.actual ELSE product.target END AS anon_1 
FROM product
听起来像是需要COALESCE,它接受多个参数并返回第一个参数,该参数不为null,如果所有参数都为null,则返回null

假定设置合理:

import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class Product(Base):
    __tablename__ = "product"
    id = sa.Column(sa.Integer, primary_key=True)
    actual = sa.Column(sa.String)
    target = sa.Column(sa.String)
使用sqlalchemy.func.coalesce:

编辑:如果缺少的值不是null,而是其他值,则应使用大小写表达式

>>> print session.query(sa.case([(Product.target == '', Product.actual)], else_=Product.target))
SELECT CASE WHEN (product.target = :target_1) THEN product.actual ELSE product.target END AS anon_1 
FROM product

ISNULL只接受一个参数,您是否IFNULL?ISNULL只接受一个参数,您是否IFNULL?ISNULL只接受一个参数,您是否IFNULL?请回答一个问题,是否有一个函数执行相同的操作,但值为空?请回答一个问题,是否有一个函数执行相同的操作但值为空?请回答一个问题,是否有一个函数执行相同的操作但值为空?请回答一个问题,是否有一个函数执行相同的操作但值为空?