python - 将 LIKE for SQL Server 与 Python 和值列表一起使用
问题描述
我有一个包含客户端和产品的 df,我必须从 SQL Server 获取有关这些项目的所有信息,但我必须使用子字符串进行解析,因为 DateBase 包含产品路径,如下所示:
productpath:
fruits/apple
vegetables/tomato
我的产品列表看起来像这样,但实际列表包含 1000 多个值:
df['prod']= ['apple', 'orange', 'tomato']
所以我决定使用这段代码:
sql_sales = """
SELECT
date,
client,
productpath,
cost
FROM all_sales
WHERE
client == %(c1)s
AND productpath LIKE '%%(prod)s%'
"""
我在使用 LIKE 和这部分'%%(prod)s%'时遇到了错误,如下所示:
格式字符串的参数不足无法回滚
没有 LIKE-part 它正在工作
解决方案
一种方法使用子查询:
. . .
where . . . and
exists (select 1
from string_split('apple,orange,tomato', ',') s
where all_sales.productpath like concat('%', s.value, '%')
)
推荐阅读
- power-automate - 如何在不安装本地电力自动化应用程序的情况下自动化遗留应用程序?
- azure-log-analytics - Azure 日志分析 documentdb 操作
- python - 如何让python识别自写的包?
- excel - 查找表中最大的收款人
- javascript - !!msg.message 和 msg?.message 有什么区别?
- javascript - 意外的“/”在
在编译 ejs 时 - c# - 如何阅读 IntelliSense 以有效地使用 LINQ
- amazon-web-services - CodeIgniter 3 Redis 支持的会话性能和可扩展性
- mysql - 如何联接两个 SQL 表以根据匹配的 id 获取特定的附加数据
- amazon-web-services - 假设在 python 中的 IAM 角色,如何做到这一点?