首页 > 解决方案 > 自动生成用 SQL 编写的 SQL 脚本,而不是 Python 中的函数

问题描述

所以我有这个巨大的值列表,我想在 SQL 上创建这个表,在其中我选择具有这些特定值的列(所以这最终是一个非常长的WHERE valOR LIKE语句的脚本。

现在我已经用 Python 编写了它来自动执行此操作;但是,是否可以在 SQL 查询本身中执行相同的操作。

def list_to_like_query(query_list, table_column):
    statement = ''
    for item in query_list:
        if statement == '':
            statement = "WHERE {column} LIKE '%{item}%'".format(column=table_column, item=item)
        else:
            statement = "{statement} OR {column} LIKE '%{item}%'".format(statement=statement, column=table_column, item=item)
    return statement

然后我会调用该函数为我生成 sql 脚本

sql_filter_statment = list_to_like_query(value_list, 'colA')

为了让事情不那么冗长,说value_list由 5 个值组成

value_list = ['Sam', 'Smith', 'John', 'Rachel', 'Christina']

那么它将输出以下内容:

WHERE
    colA LIKE 'Sam'
    OR coLA LIKE 'Smith'
    OR colA LIKE 'John'
    OR colA LIKE 'Rachel'
    OR colA LIKE 'Christina'

但是,是的,这可以用 SQL 本身动态编写吗

编辑:忘记提及通过该list_to_like_query方法传递的列表是通过从另一个 SQL 表中检索不同的值创建的

标签: pythonsqlpresto

解决方案


推荐阅读