Преобразуйте длинную строку в ASCII в SQL

#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. A uniqueidentifier также не чувствителен к регистру.

2. Я в замешательстве: a uniqueidentifier -это всего лишь 16-байтовый массив, в нем не больше верхнего или нижнего регистра, чем в 10 или 42

3. Извините, я виноват, что назвал это уникальным идентификатором. Обновил его до поля идентификатор

Ответ №1:

Преобразование всех символов в вашем идентификаторе в номер ASCII кажется довольно сложной задачей, которую можно решить гораздо проще. Просто создайте новую таблицу в своей базе данных со столбцом идентификатора (суррогатный ключ) и вашим идентификатором. Затем вставьте все различные значения вашего идентификатора в эту таблицу. При импорте таблиц в Power BI вы просто ПРИСОЕДИНЯЕТЕСЬ к этой новой таблице, и в Power BI вы выполняете анализ нового столбца SK вместо uid.

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

1. К сожалению, у меня есть доступ только для чтения к базе данных.

2. Несколько из них.. использование этого поля идентификатора для настройки отношений в Power BI

3. Вы могли бы использовать временную таблицу##, тогда вам нужен только доступ для чтения, но я думаю, что это сделает ваше обновление в Power BI очень болезненным.

4. Как насчет добавления ДВОИЧНОЙ КОНТРОЛЬНОЙ СУММЫ к идентификатору, например, ВЫБЕРИТЕ CONCAT(ID,’_’, BINARY_CHECKSUM(ID) ) В КАЧЕСТВЕ НОВОГО ИДЕНТИФИКАТОРА