HANA объединяет таблицы с данными в нижнем и верхнем регистре - PullRequest
0 голосов
/ 16 мая 2018

У меня есть две таблицы A и B:

TABLE A
ATTR1  ATTR2  ATTR3
aa     xyz    zxy
bb     uuu    aaa

TABLE B
ATTR1  ATTR4  ATTR5
AA     zzz    xxx
BB     111    222

Я присоединяюсь к ним (в графическом представлении расчета), используя атрибут ATTR1, но я не получаю никаких данных в выводе. Я думаю, потому что содержание чувствительно к регистру.

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

Может кто-нибудь дать мне подсказку, если это правильно или есть лучший подход?

Спасибо

1 Ответ

0 голосов
/ 17 мая 2018

У вас там правильный подход.Необходимо «нормализовать» значения (в данном случае просто сделать их обоими прописными или строчными буквами), чтобы их можно было сравнивать друг с другом.

Одним из альтернативных вариантов будет включение поиска без учета регистра в сеансе-уровень в SAP HANA (для этого необходимо устанавливать контекстную переменную каждый раз, когда вы хотите выполнить запрос).Это, однако, приведет к тому же использованию функции преобразования UCASE во время выполнения запроса, как если бы вы смоделировали ее в виде расчета.

Моя рекомендация - сохранить это моделирование в своем представлении калькуляции, поскольку оно делает эту важную часть дизайна данных видимой.

Ах ... третий вариант - изменить таблицы, добавив вычисляемые столбцы , которые автоматически сохраняют заглавную версию столбцов.Это, конечно, увеличит требования к памяти и требуемое время обработки при изменении данных, но во время запроса данные уже будут доступны в нормализованной форме.Окупается ли это на самом деле или нет, нужно проверять, измеряя различные подходы к реализации.Вероятно, эту технику я бы использовал, только если не смогу ее избежать.

...