SQL: как мне заполнить пользовательскую таблицу / столбец на основе значения в другом столбце

#sql #database #report #relational-database #powerbi

#sql #База данных #Сообщить #реляционная база данных #powerbi

Вопрос:

Заранее извините, если это глупый вопрос. Я не очень разбираюсь в SQL / Power BI.

У меня есть таблица, с которой я работаю, в которой есть столбец Job Names .

Я хочу заполнить либо пользовательскую таблицу / столбец (я думаю, что для моих нужд лучше всего подойдет отдельная таблица, но любой прогресс в правильном направлении крайне приветствуется) на основе подстроки, найденной в этом столбце.

Столбец всегда будет содержать 1 из 4 потенциальных чисел, но число может быть расположено в разных местах в имени, и есть вероятность, что другое число, найденное в названии задания, может непреднамеренно представлять одно из чисел.

Вот пример:

введите описание изображения здесь

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

Причина этого в том, что у меня есть поток данных, который я пытаюсь использовать в Power BI, но я хочу создать фильтр страницы на основе этих пользовательских значений, и поскольку у меня нет столбца, который содержит только эти конкретные числа, я не могу создать визуализацию среза для фильтрации данных, показанных в отчете.

Если требуется какое-либо разъяснение, просто дайте мне знать, я буду рад попытаться перефразировать что-либо или быть более конкретным, где это необходимо 🙂

Комментарии:

1. Вместо того, чтобы беспокоиться о том, что в поле будет найдено повторяющееся значение, как я упоминал ранее, если это проще, предположим, что подобный сценарий никогда не произойдет, поскольку я могу технически предотвратить это, я верю 🙂

Ответ №1:

В окне power query выберите столбец название задания, а затем добавьте добавить букву спереди и сзади текста. Вкладка Преобразования> Группа текстовых столбцов> Формат> Добавить префикс / Добавить суффикс, затем используйте разделенный столбец (также в группе текстовых столбцов), чтобы разделить цифру на неразрядную, а затем неразрядную на цифру. Затем удалите лишние столбцы, и все готово! Вот код M:

 #"Added Prefix" = Table.TransformColumns(#"Changed Type", {{"JOB_NAME", each "x" amp; _, type text}}),
#"Added Suffix" = Table.TransformColumns(#"Added Prefix", {{"JOB_NAME", each _ amp; "x", type text}}),
#"Split Column by Character Transition" = Table.SplitColumn(#"Added Suffix", "JOB_NAME", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"JOB_NAME.1", "JOB_NAME.2"}),
#"Split Column by Character Transition1" = Table.SplitColumn(#"Split Column by Character Transition", "JOB_NAME.2", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"JOB_NAME", "JOB_NAME.2"}),
#"Removed Columns" = Table.RemoveColumns(#"Split Column by Character Transition1",{"JOB_NAME.1", "JOB_NAME.2"})