2015-11-04 2 views
0

У меня есть поле с именем field, и я хотел бы видеть, если она равна нулю, но я получаю сообщение об ошибке в запросе, мой код это:Состояние IF В Мощность запросов Query Advanced Editor

let 
    Condition= Excel.CurrentWorkbook(){[Name="test_table"]}[Content], 
    field= Condition{0}[fieldColumn], 
    query1="select * from students", 
    if field <> null then query1=query1 & " where id = '"& field &"', 
    exec= Oracle.Database("TESTING",[Query=query1]) 
in 
    exec 

но Я получаю ошибку в состоянии, вы идентифицируете ошибку? я получил Expression.SyntaxError: Token Identifier expected.

+0

Если вы хотите узнать больше о языке программирования Power Query (M), у нас есть руководство по началу работы в MSDN: https://msdn.microsoft.com/en-us/library/mt299038.aspx –

ответ

4

Вам нужно назначить строку if переменной. Каждая строка M должна начинаться с задания:

let 
Condition= Excel.CurrentWorkbook(){[Name="test_table"]}[Content], 
field= Condition{0}[fieldColumn], 
query1="select * from students", 
query2 = if field <> null then query1 & " some stuff" else " some other stuff", 
exec= Oracle.Database("TESTING",[Query=query2]) 
in 
exec 

В query2 вы можете построить инструкцию select. Я упростил это, потому что у вас также есть конфликты с двойными кавычками.

+1

@SergeyLossev - вы отредактировали этот 17-месячный ответ, чтобы изменить одно пространство? Вставай, чувак! Остановить охоту на коричневые точки. Сделайте что-нибудь полезное. – teylyn

0

Я думаю, что вы ищете:

if Not IsNull(field) then .... 

Некоторые типы данных, которые Вы, возможно, придется проверить с помощью IsEmpty() или «поле не ничего» слишком. В зависимости от типа данных и того, что вы используете.

Для устранения неполадок лучше всего попытаться установить точку останова и найти, где происходит ошибка, и следить за тем, чтобы переменная не мешала этому конкретному значению.

+0

нет но я продолжаю: Expression.SyntaxError: Идентификатор токена ожидается. –

+0

это звучит как проблема форматирования запроса, а не проблема с Excel. Я знаю sql, но это вне моего опыта. –

+0

Я так не думаю, потому что я могу добавить запрос вручную, и он запускается, это должно быть smith sintaxis в Power query, где Im не так сильно –

0

Чтобы удовлетворить это требование, я бы построил новый запрос с использованием пользовательского интерфейса PQ, чтобы выбрать таблицу/представление студентов из Oracle, а затем использовать пользовательский интерфейс для фильтрации столбца [id] для любого значения.

Затем в расширенном редакторе я отредактировал бы созданную строку FilteredRows, используя код из шага поля Condition +, например.

FilteredRows = Table.SelectRows(TESTING_students, each [id] = Excel.CurrentWorkbook(){[Name="test_table"]}{0}[fieldColumn])

Это незначительное изменение от сгенерированного сценария, а не пытаться писать все это с нуля.

 Смежные вопросы

  • Нет связанных вопросов^_^