#sql-server #powerbi
Вопрос:
Поле идентификатора в моих данных чувствительно к регистру. Я использую Power BI для анализа этих данных, и они не чувствительны к регистру. Поэтому я хочу написать синтаксис SQL, который преобразует идентификаторы в ASCII. идентификаторы состоят из 14 символов, состоящих из цифр, прописных и строчных букв. Если есть способ сделать это в Power BI, это тоже работает.
Это длинный и тупой способ, который у меня есть: КОНКАТ(ВЫЧИТАНИЕ(ASCII(ID,1,1)),ВЫЧИТАНИЕ(ASCII(ID,2,1))……ВЫЧИТАНИЕ(ASCII(ID,14,1)))
Спасибо всем!
Комментарии:
1. Примеры данных и ожидаемые результаты помогут нам помочь вам. A
uniqueidentifier
состоит из символов 0-9, a-f и -, так что это уже ASCII. Auniqueidentifier
также не чувствителен к регистру.2. Я в замешательстве: a
uniqueidentifier
-это всего лишь 16-байтовый массив, в нем не больше верхнего или нижнего регистра, чем в 10 или 423. Извините, я виноват, что назвал это уникальным идентификатором. Обновил его до поля идентификатор
Ответ №1:
Преобразование всех символов в вашем идентификаторе в номер ASCII кажется довольно сложной задачей, которую можно решить гораздо проще. Просто создайте новую таблицу в своей базе данных со столбцом идентификатора (суррогатный ключ) и вашим идентификатором. Затем вставьте все различные значения вашего идентификатора в эту таблицу. При импорте таблиц в Power BI вы просто ПРИСОЕДИНЯЕТЕСЬ к этой новой таблице, и в Power BI вы выполняете анализ нового столбца SK вместо uid.
Комментарии:
1. К сожалению, у меня есть доступ только для чтения к базе данных.
2. Несколько из них.. использование этого поля идентификатора для настройки отношений в Power BI
3. Вы могли бы использовать временную таблицу##, тогда вам нужен только доступ для чтения, но я думаю, что это сделает ваше обновление в Power BI очень болезненным.
4. Как насчет добавления ДВОИЧНОЙ КОНТРОЛЬНОЙ СУММЫ к идентификатору, например, ВЫБЕРИТЕ CONCAT(ID,’_’, BINARY_CHECKSUM(ID) ) В КАЧЕСТВЕ НОВОГО ИДЕНТИФИКАТОРА