如何在从 SQL SERVER 取数时由用户录入 WHERE 条件的值?

Power Query yangyi1225 ⋅ 于 2018-11-07 09:28:59 ⋅ 最后回复由 yangyi1225 2018-11-07 13:06:50 ⋅ 2157 阅读

一般在POWER QUERY取数时,源设置的SQL 语句都写好,如:
select * from products where productname like '计算机'
如果希望每次刷新数据时,由用户录入 计算机 参数值,应该如何实现呢?
先谢谢各位DALAO!

成为第一个点赞的人吧 :bowtie:
最佳答案
  • Alex MOD 社区清洁工
    2018-11-07 10:58:59

    SQL 语句在 M 里是以文本形式存在,例如你用的是 MySQL ,生成的 M 代码是:

    = MySQL.Database("服务器地址", "数据库名", [Query="select * from products where productname like '计算机'"])

    问题可以简化为:有一段文本是"select * from products where productname like '计算机'",如何根据用户输入的值让文本动态变化?
    可以先在 Excel 单元格里输入"计算机"三个字,Ctrl+T 插入表格,并在名称管理器里命名为"参数"。
    file
    然后在查询编辑器中添加自定义步骤:

    = Excel.CurrentWorkbook(){[Name="参数"]}[Content][参数]{0}

    步骤名命名为"参数",这样就获取到了用户输入的值,再和前面不变的常量拼接起来就行了。

    = "select * from products where productname like '" & 参数 & "'"
回复数量: 5
  • 焦棚子 微软 MVP
    2018-11-07 10:26:25
  • yangyi1225
    2018-11-07 10:48:37

    @焦棚子 谢谢,这是要在数据库里面去根据SHEET上查询内容建临时表并关联主数据表了哇,还有再简单点的方案么?PQ小白感觉难度略大。 比如直接 SQL语句 select * from 表名 where productname like 参数, 然后再 指定某个SHEET的某单元格为参数值,或者刷新时弹出提示文本框要求用户录入参数值 呢?

  • Alex MOD 社区清洁工
    2018-11-07 10:58:59

    SQL 语句在 M 里是以文本形式存在,例如你用的是 MySQL ,生成的 M 代码是:

    = MySQL.Database("服务器地址", "数据库名", [Query="select * from products where productname like '计算机'"])

    问题可以简化为:有一段文本是"select * from products where productname like '计算机'",如何根据用户输入的值让文本动态变化?
    可以先在 Excel 单元格里输入"计算机"三个字,Ctrl+T 插入表格,并在名称管理器里命名为"参数"。
    file
    然后在查询编辑器中添加自定义步骤:

    = Excel.CurrentWorkbook(){[Name="参数"]}[Content][参数]{0}

    步骤名命名为"参数",这样就获取到了用户输入的值,再和前面不变的常量拼接起来就行了。

    = "select * from products where productname like '" & 参数 & "'"
  • 焦棚子 微软 MVP
    2018-11-07 11:53:36

    楼上施大神的名称管理办法也是极好的。
    单条件很好用
    另外如果是多条件就需要考虑效率的问题咯。
    看你的实际场景。

  • yangyi1225
    2018-11-07 13:06:49

    谢谢@Alex 和@焦棚子 ,ALEX的名称管理的确不错,比较适合我现在要用的这种场景!

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter