Недавно я написал пару сообщений в блоге о выражении 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.
Не стесняйтесь посещать следующие сообщения, если вас интересует другой похожий контент:
- Импортировать CSV-файл с помощью Oracle SQL Developer
- Символьная функция SUBSTR () - пример Oracle SQL
- Как найти первый и последний день месяца с помощью Oracle SQL Date Functions
Я понимаю, что этот пример запроса, скорее всего, не имеет реального применения и является чисто произвольным. Но я надеюсь, что из этого сообщения в блоге вы получите представление о том, как применять выражения CASE для динамических значений, когда они вам нужны в ваших запросах. Спасибо за чтение.
Нравится то, что вы прочитали? Видите что-нибудь неправильное? Прокомментируйте, пожалуйста, ниже и спасибо за чтение !!!
Призыв к действию!
Спасибо, что нашли время прочитать этот пост. Я искренне надеюсь, что вы открыли для себя что-то интересное и поучительное. Пожалуйста, поделитесь своими выводами здесь с кем-нибудь, кого вы знаете, кто тоже получит от этого такую же ценность.
Посетите страницу Портфолио-проекты, чтобы увидеть сообщения в блоге / технические статьи, которые я написал для клиентов.
Чтобы получать уведомления по электронной почте (Никогда не спамить) от этого блога (Проза Цифровой Совы) о последних публикациях в блоге по мере их публикации, пожалуйста, подпишитесь (по собственному желанию), нажав кнопку Нажмите, чтобы подписаться! На боковой панели на домашняя страница! (Не стесняйтесь в любое время просмотреть страницу Политики конфиденциальности Digital Owl's Prose по любым вопросам, которые могут у вас возникнуть: обновления по электронной почте, подписка, отказ, контактные формы и т. Д.)
Обязательно посетите страницу Best Of, где собраны мои лучшие сообщения в блоге.
Джош Отвелл хочет учиться и расти как разработчик SQL и блогер. Другие любимые занятия находят его, уткнувшись носом в хорошую книгу, статью или командную строку Linux. Среди них он разделяет любовь к настольным ролевым играм, чтению фэнтезийных романов и проведению времени с женой и двумя дочерьми.
Отказ от ответственности: примеры, представленные в этом посте, представляют собой гипотетические идеи о том, как достичь аналогичных результатов. Это не самое лучшее решение. Большинство, если не все, из представленных примеров выполняются в среде рабочей станции для личного развития / обучения и не должны считаться производственными или готовыми к использованию. Ваши конкретные цели и потребности могут отличаться. Используйте те методы, которые лучше всего подходят для ваших нужд и целей. Мнения мои собственные.
Обязательно подпишитесь (внешняя ссылка) на мою еженедельную электронную почту, если этот пост и другой контент SQL / PHP вас заинтересуют.
Первоначально опубликовано на https://joshuaotwell.com 9 июня 2021 г.