Недавно я написал пару сообщений в блоге о выражении SQL CASE с примерами в MySQL. Изучая и узнавая больше об Oracle SQL, я хотел применить выражение CASE к символьной функции RPAD() для динамической строковой pa dding. Продолжайте читать, чтобы увидеть пример запроса…

Самореклама:

Если вам нравится содержание, написанное здесь, обязательно поделитесь этим блогом и своими любимыми сообщениями с другими людьми, которым он также может быть полезен или им понравится. Поскольку кофе - мой любимый напиток, вы можете даже купить мне его, если хотите!

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

Данные практики

Вымышленные данные для этого сообщения хранятся в таблице FRIENDS со столбцом FIRST_NAME, имеющим следующие значения:

Мы можем увидеть каждое FIRST_NAME и соответствующую длину имени с помощью этого запроса, используя функцию LENGTH():

Создать переменную привязки

Чтобы определить самое длинное значение длины столбца FIRST_NAME, я воспользуюсь символьной функцией LENGTH() в столбце FIRST_NAME и заключу все выражение в вызов функции MAX():

Затем я создаю связываемую переменную с именем max_fname_len, чтобы сохранить это значение для облегчения использования и обработки в любых последующих запросах:

Динамический RPAD () с использованием CASE

Для этого требования я использую функцию RPAD() для добавления n количества символов к каждому значению 'first_name' в зависимости от того, меньше ли значение, чем максимальное значение длины столбца 'first_name', равное 7. RPAD() принимает 3 параметра (2 обязательных и 1 необязательный):

  • target_string - строка, которую нужно дополнить.
  • length - длина строки после того, как она была дополнена заданной строкой заполнения.
  • pad string - строка, которая будет дополнена до target_string (в данном случае дополнена справа). Если не указан, используется один пробел.

Если во втором параметре указан параметр "Поиск CASE", значение длины будет динамическим для каждой строки:

Обратите внимание, что в результатах запроса строки со значениями столбца FIRST_NAME "Charlie" и "Jupyter" не были дополнены справа, поскольку их длина равна 7. Однако все остальные Значения столбца FIRST_NAME были заполнены справа с помощью ряда символов звездочки (*) до значения max_fname_len, равного 7.

Строка со значением столбца FIRST_NAME "Humpty" дополнена справа только одним символом звездочки, поскольку длина этой строки равна 6. Тем не менее, имя "Jim" с заполнением справа четырьмя символами звездочки, чтобы общая длина составляла 7, потому что его длина всего 3.

Не стесняйтесь посещать следующие сообщения, если вас интересует другой похожий контент:

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

Нравится то, что вы прочитали? Видите что-нибудь неправильное? Прокомментируйте, пожалуйста, ниже и спасибо за чтение !!!

Призыв к действию!

Спасибо, что нашли время прочитать этот пост. Я искренне надеюсь, что вы открыли для себя что-то интересное и поучительное. Пожалуйста, поделитесь своими выводами здесь с кем-нибудь, кого вы знаете, кто тоже получит от этого такую ​​же ценность.

Посетите страницу Портфолио-проекты, чтобы увидеть сообщения в блоге / технические статьи, которые я написал для клиентов.

Я люблю пить кофе!

Чтобы получать уведомления по электронной почте (Никогда не спамить) от этого блога (Проза Цифровой Совы) о последних публикациях в блоге по мере их публикации, пожалуйста, подпишитесь (по собственному желанию), нажав кнопку Нажмите, чтобы подписаться! На боковой панели на домашняя страница! (Не стесняйтесь в любое время просмотреть страницу Политики конфиденциальности Digital Owl's Prose по любым вопросам, которые могут у вас возникнуть: обновления по электронной почте, подписка, отказ, контактные формы и т. Д.)

Обязательно посетите страницу Best Of, где собраны мои лучшие сообщения в блоге.

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

Отказ от ответственности: примеры, представленные в этом посте, представляют собой гипотетические идеи о том, как достичь аналогичных результатов. Это не самое лучшее решение. Большинство, если не все, из представленных примеров выполняются в среде рабочей станции для личного развития / обучения и не должны считаться производственными или готовыми к использованию. Ваши конкретные цели и потребности могут отличаться. Используйте те методы, которые лучше всего подходят для ваших нужд и целей. Мнения мои собственные.

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

Первоначально опубликовано на https://joshuaotwell.com 9 июня 2021 г.