
从你的问题生成SQL查询
提示词
请以一位资深数据同事的身份来做这件事。你曾经花过一整夜,去修一份看上去很漂亮、却把同一笔订单算了两次的报表;正因为如此,你交出一条查询时,一定会把"怎么验证它对不对"也一起交出来。
背景:我的数据库是[哪个数据库和版本 - 例:PostgreSQL 15]。我要回答的问题是[用平常的话讲,就像讲给同事听 - 例:上个季度有多少新客户买了不止一次]。我手上的表和字段只有这些,没有别的:
[在这里粘贴每张表,连同字段和类型]
数据量是[大致规模 - 例:订单表大约两百万行]。我的权限是[你能做什么 - 例:只读]。数据的时区是[时区 - 例:UTC,我需要的结果按北京时间]。
任务:写出恰好回答这个问题的查询,用平常的话解释它在做什么,并给我验证结果的办法。
规则:
1. 只使用我列出的表和字段。如果缺了什么才能回答,就说缺什么,不要凭空造一个字段。
2. 只写读取。不要出现DELETE、UPDATE、DROP或ALTER,即使作为注释掉的建议也不行。
3. 用平常的话逐块解释这条查询,说明每一次连接和每一个条件把什么排除在外。读的人不必懂SQL也能跟上。
4. 有意识地处理空值,并说明你的决定:没有值的那一行是计入、排除,还是当作零。
5. 留意什么会让行数翻倍。如果某个连接可能把结果乘出来,指出在哪里,并展示你是怎么避开的。
6. 日期和时区按我要求的时区换算输出,区间要写明:说清最后一天算不算在内。
7. 另外再给一条验证用的查询,更简单、走另一条路,用来证明第一条的数字是对的。
8. 如果我的问题有歧义,取最常见的读法继续往下,并在最后说明你用的是哪一种读法、另一种会是什么。
9. 排版要给人看:一行一个子句,表别名简短,只在那一行无法自明的地方写注释。
10. 说一件能在我给出的数据量下让查询更快的事,同时也说清什么时候不值得这么做。
回答格式:先给写好的查询,放在代码块里,中间不夹文字;然后用平常的话逐块解释;然后给验证用的查询,放在另一个代码块里,并用一句话说明它的结果应当与什么对上;然后列出你所做的假设;最后写一条关于性能的说明。
使用方法
写查询是容易的那一半。真正贵的是一周之后才发现:因为一次连接把行数翻了倍,数字虚高,而报表早就传出去了。这个提示词给你查询、给你平常话的解释,还给你第二条用来验证第一条的查询。可在ChatGPT、Claude和Gemini里使用。 1. 把字段名连同类型一起粘上。没有这个,AI会造出一个看着合理的字段,查询到数据库上就报错。 2. 用平常的话提问,就像讲给同事听。把问题翻成半个SQL,换回来的也是半个SQL。 3. 写清数据的时区:报表整整差一天,原因常常安静地藏在这里。 4. 在把数字发给任何人之前,先跑一遍验证查询。两个对不上,错就在第一条里。 5. 读一读假设清单:没有值的行怎么处理写在那里,而它会改变总数。 小提示:把跑通的查询和原始问题一起存下来,上面写着那句话。这会变成你自己的数据库词典。
适用工具
ChatGPT
Claude
Gemini
为该提示词评分
📖 来自 Prompteiro 博客
查看全部文章 →
ChatGPT为什么会出错,怎么核对答案课程 · 2026年8月24日

如何用AI把你的照片生成新图像课程 · 2026年8月19日

用AI学习:考试、公考和语言的方法文本 · 2026年8月18日

免费AI能做什么:不花钱也够用课程 · 2026年8月12日

ChatGPT 还是 Gemini:各类任务怎么选课程 · 2026年8月5日

最好的中文 ChatGPT 提示词:12 条今天就能用文本 · 2026年8月2日

用 AI 修复老照片:完整的免费指南图像 · 2026年8月2日

如何写出在 ChatGPT 里管用的提示词课程 · 2026年8月2日

工作与职业的AI提示词:12个真正解决问题的文本 · 2026年8月1日
Prompt




