You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.10中使用sqlite3查询时提示‘no such function:SQRT’如何解决?

解决SQLite中SQRT函数不存在的问题

可能原因

你的SQLite版本(3.45.3)本身内置支持SQRT数学函数,但Python的sqlite3模块可能存在函数识别异常,或是查询语句存在拼写/格式问题。

解决方案

1. 检查查询语句的拼写与格式

确保SQRT拼写完全正确,避免多余空格或符号干扰:

  • 正确示例:SELECT SQRT(16) FROM your_table;
  • 规避错误:不要写成SQRT (16)(部分环境对函数名与括号间的空格敏感)或拼写错误的SQRTT等。

2. 手动注册SQRT函数到sqlite3

若确认语句无误,可通过Python的math模块手动将SQRT函数注册到数据库连接中,代码示例:

import sqlite3
import math

# 建立数据库连接
conn = sqlite3.connect('your_database.db')
# 注册SQRT函数(参数1为函数名,参数2为接收的参数个数,参数3为对应的Python实现)
conn.create_function('SQRT', 1, math.sqrt)

# 执行查询
cursor = conn.cursor()
cursor.execute("SELECT SQRT(25)")
result = cursor.fetchone()
print(result)

# 关闭连接
conn.close()

3. 验证SQLite原生函数支持

可直接在SQLite命令行中执行SELECT SQRT(9);,若返回3.0则说明数据库本身支持该函数,问题出在Python的sqlite3模块适配环节。

内容的提问来源于stack exchange,提问作者winger Li

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:57:03