用于SQL的Excel Power Query参数化的IN子句

时间:2019-05-14 14:54:41

标签: sql excel odbc parameter-passing powerquery

我有一个Excel工作簿,它使用SQL语句从ODBC数据源获取数据,该SQL语句在Where语句中具有IN子句。在Power Query Editor中,我在下面输入了ODBC DSN和SQL。我想将IN子句替换为Excel表中一列的值。我该怎么做。

选择PYRL_NO,EMP_LST_NM姓,EMP_FIR_NM姓,STS_CD状态 ,STS_EFF_DT StatusDate,UNN_CD联合代码 来自OFSPROD.AG_EMP_MSTR PYRL_NO IN('00008','00016') 订购PYRL_NO enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

将excel表加载到Power Query中,如有必要,在值前添加前缀/后缀',然后将该列转换为IN语句中的字符串。看起来像这样(我相信这必须在功能栏或高级编辑器中完成,而不是在ODBC连接的属性中完成):

"
SELECT PYRL_NO, EMP_LST_NM LastName, EMP_FIR_NM FirstName, STS_CD Status ,STS_EFF_DT StatusDate, UNN_CD UnionCode 
FROM OFSPROD.AG_EMP_MSTR 
WHERE PYRL_NO IN (" & Text.Combine(MyTable[MyColumn], ",") & ") 
ORDER BY PYRL_NO
"