Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Функции LOWER и UPPER

Функции LOWER и UPPER позволяют быстро и просто изменить регистр строки, чтобы символы отображались в нижнем (LOWER) или верхнем (UPPER) регистре. Эти функции поддерживаются во всех реализациях, описываемых в этой книге. Разные платформы, кроме того, поддерживают различные другие функции для форматирования текста, которые являются специфичными для конкретной реализации.





Синтаксис SQL 2003

LOWER(строка) UPPER(строка)

Функция LOWER преобразует строку в нижний регистр, а функция UPPER, наоборот, в верхний.


DB2 и MySQL

Эти платформы поддерживают скалярные функции LOWER и UPPER стандарта SQL 2003, а также их синонимы UCASE и LCASE.


Oracle, PostgreSQL и SQL Server

Эти платформы поддерживают скалярные функции LOWER и UPPER стандарта SQL 2003, и это показано в приведенном ниже примере.

Пример

SELECT
LOWER(‘You Talkin To ME?’),
UPPER(‘you talking to me’);

you talkin to me?

YOU TALKING TO ME?!


OVERLAY

Функция ОVERLAY вставляет одну строку в другую и возвращает результат.





Синтаксис SQL 2003

OVERLAY(строка PLACING встраиваемая_строка FROM начало [FOR длина])

Если хотя бы один из входных параметров будет равен NULL, функция возвращает NULL, встраиваемая_строка заменяет количество символов, указываемое параметром длина, в указанной строке, начиная с начала. Если длина не указана, то встраиваемая строка заменит все символы, идущие в строке после начала.


DB2, MySQL, Oracle и SQL Server

Эти платформы не поддерживают функцию OVERLAY. Вы можете сымитировать действие этой функции на этих платформах при помощи комбинации функции SUBSTRING и оператора конкатенации.



PostgreSQL

Платформа PostgreSQL поддерживает для функции О VERLA Y стандарт ANSI. Примеры

Ниже приводится пример использования функции OVERLAY.


SQL 2003 и PostgreSQL

SELECT
OVERLAY(‘DONALD DUCK’ PLACING ‘TRUMP’ FROM 8)
FROM NAMES;

DONALD TRUMP


SUBSTRING

Функция SUBSTRING позволяет извлечь одну строку из другой.





Синтаксис SQL 2003

SUBSTRING{строка_для_извлечения FROM начало [FOR длина] [COLLATE имя_сопоставления])

Если хотя бы один из входных параметров равен NULL, функция SUBSTRING возвращает NULL. Параметр строка_для_экстращии — это исходная строка, откуда нужно извлечь символьное значение. Это может быть строковая константа, столбец таблицы, относящийся к символьному типу, или переменная символьного типа. Параметр начало — это целочисленное значение, указывающее, с какой позиции нужно начинать извлечение. Необязательный параметр длина — это целочисленное значение, указывающее, сколько символов нужно извлечь, начиная с начала. Если дополнительное ключевое слово FOR опущено, то подстрока будет начинаться с начала и продолжаться до конца строки_для_извлечения.



DB2

SUBSTRING{строка_для_извлечения, начало [, длина])

Реализация данной функции в DB2, под названием SUBSTR, по большей части функционально эквивалентна стандартной функции SUBSTRING. Предложение COLLATE не поддерживается. Если параметр длина опущен, то возвращается оставшаяся часть строки (начиная с начала).


MySQL

SUBSTRING(строка_для_извлечения FROM начало)

Реализация данной функции в MySQL подразумевает, что символы будут извлекаться с начала и извлечение будет продолжаться до конца строки.


Oracle

SUBSTRING(строка_для_извлечения, начало [, длина])

Реализация данной функции в DB2, под названием SUBSTR, по большей части функционально эквивалентна стандартной функции SUBSTRING. Предложение COLLATE не поддерживается. Если параметр начало представляет собой отрицательное число, Oracle отсчитывает символы от конца строки_для_извлечения. Если параметр длина опущен, извлекается оставшаяся часть строки (от начала).



PostgreSQL

SUBSTRING{строка_для_извлвчения [FROM начало] [Р0Н длина])

Платформа PostgreSQL в основном поддерживает стандарт ANSI, за исключением того, что не поддерживается предложение COLLATE.


SQL Server

SUBSTRING{строка_для_извлечения [FROM начало] [Р0Н длина])

Платформа SQL Server в основном поддерживает стандарт ANSI, за исключением того, что не поддерживается предложение COLLATE. SQL Server позволяет использовать эту команду применительно к тексту, изображениям и двоичным типам данных, однако параметры начало и длина показывают здесь не количество символов, а количество байт.

Примеры

Эти примеры, как правило, будут работать на всех пяти описываемых в этой книге платформах. Только второй пример для Oracle, с отрицательным параметром начало, не будет выполняться на других платформах (конечно, нужно перевести ключевое слово Oracle SUBSTR в SUBSTRING).

/* Для Oracle, подсчет начинается слева */
SELECT
SUBSTR(‘ABCDEFG’, 3.4)
FROM DUAL;

Результат: ‘CDEF’

/* Для Oracle, подсчет начинается справа */
SELECT
SUBSTR(‘ABCDEFG’, -5.4)
FROM DUAL;

Результат: ‘CDEF’

/* Для MySQL */
SELECT
SUBSTRI, NG(‘Be vewy, vewy quiet’)
FROM 5

Результат: ‘wy, vewy quiet’

/* Для PostgreSQL или SQL Server */
SELECT
aujname.SUBSTRING(au_fname, 1. 1)
FROM authors
WHERE au_lname=’Carson’ Carson С


TRIM

Функция TRIM удаляет из указанной символьной строки или значения типа BLOB первые символы, последние символы или и те и другие сразу. Также эта функция удаляет из указанной символьной строки и другие типы символов. По умолчанию функция удаляет указанный символ с обеих сторон символьной строки. Если удаляемый символ не указан, по умолчанию функция удаляет пробелы.





Синтаксис SQL 2003

TRIM([[{LEADING | TRAILING | BOTH}] [удаляемый_символ] FROM] целевая_строка [COLLATE имя_сопоставления])

Параметр удачяемъш символ указывает символ, который нужно удалить, целе-вая_строка — это символьная строка, из которой нужно удалить символы. Если удаляемый символ не указан, функция TRIM удаляет пробелы. Функция COLLATE приводит результирующий набор данных функции в соответствие с существующим сопоставлением.



DB2

В DB2 есть функции LTRIM и RTRIM, которые удаляют первые или последние пробелы соответственно.


MySQL, Oracle, PostgreSQL

Эти платформы поддерживают синтаксис функции TRIM стандарта SQL 2003.


Microsoft SQL Server

В SQL Server есть функции LTRIM и RTRIM, которые удаляют первые или последние пробелы соответственно. В SQL Server функции LTRIM и RTRIM не могут применяться для удаления других видов символов.

Примеры:

SELECT TRIM(‘ wamalamadingdong ‘);
» wamalamadingdong;

SELECT LTRIM(RTRIM(‘ wamalamadingdong ‘));
» wamalamadingdong

SELECT TRIM(LEADING ’19’ FROM ‘1976 AMC GREMLIN’);
» 76 AMC GREMLIN

SELECT TRIM(BOTH ‘x’ FROM ‘xxxWHISKEYxxx’);
» WHISKEY

SELECT TRIM(TRAILING ‘snack’ FROM ‘scooby snack’);
» scooby

Источник