小编kka*_*ler的帖子

如何在SQLAlchemy和postgresql中结合两个子查询

原始SQL需要:

SELECT
    id
FROM
   (SELECT some_table.id FROM some_table WHERE some_table.some_field IS NULL) AS subq1
   UNION
   (SELECT some_table.id WHERE some_table.some_field IS NOT NULL)
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

这是python代码:

import sqlalchemy

SOME_TABLE = sqlalchemy.Table(
 'some_table',
 sqlalchemy.MetaData(),
 sqlalchemy.Column('id', sqlalchemy.Integer, primary_key=True),
 sqlalchemy.Column('some_field', sqlalchemy.Text))

stmt_1 = sqlalchemy.sql.select(SOME_TABLE.columns).where(SOME_TABLE.columns.some_field != None)
stmt_2 = sqlalchemy.sql.select(SOME_TABLE.columns).where(SOME_TABLE.columns.some_field == None)

# This gets a programming error.
stmt_1.union(stmt_2).limit(10);
Run Code Online (Sandbox Code Playgroud)

以下是输出的SQL(带有参数交换),它会收到此错误: 错误:"UNION"处或附近的语法错误:

SELECT some_table.id, some_table.some_field
FROM some_table
WHERE some_table.some_field IS NOT NULL
 LIMIT 10 UNION SELECT some_table.id, some_table.some_field
FROM some_table
WHERE some_table.some_field IS NULL
 LIMIT 10 …
Run Code Online (Sandbox Code Playgroud)

python postgresql union sqlalchemy python-2.7

7
推荐指数
1
解决办法
1万
查看次数

我在Asana没有受让人或项目的任务在哪里?

它没有项目,我作为受让人取消了自己,现在我无法在任何地方找到它.我只能按项目或受让人排序.谁知道它藏在哪里?

asana

4
推荐指数
2
解决办法
2310
查看次数

在linux中搜索并替换一行?

如何在目录中的每个文件中找到并替换{%extends"a/b/c/d"%}的每个实例与另一个{%extends"e/f/g/h"%}?此外,如果在同一行的声明之后发生任何事情,我想保留它.

我已经看过使用perl,如下所示:

perl -pi -e 's/find/replace/g' *.html
Run Code Online (Sandbox Code Playgroud)

但是我不知道perl并且不知道在我的查找/替换字符串中转义所有字符的最佳方法(即{./,"等).

更容易解决方案?

linux perl grep sed

2
推荐指数
1
解决办法
304
查看次数

标签 统计

asana ×1

grep ×1

linux ×1

perl ×1

postgresql ×1

python ×1

python-2.7 ×1

sed ×1

sqlalchemy ×1

union ×1