Понедельник
13.05.2024
04:10


Форма входа


Приветствую Вас Гость | RSS
Статьи по ORACLE, PL/SQL, Java и немного по SHELL (BASH),...
Главная Каталог статей Регистрация Вход
Главная » Статьи » ORACLE » Встроенные функции SQL

Строковые функции
Функция UPPER(str), преобразует все символы строки str в прописные.

Пример:
SELECT UPPER('TeXt') x
FROM dual;

X
-------------
TEXT

Функция LOWER(str), преобразует все символы строки str в строчные.

Пример:
SELECT LOWER('TeXt') X
FROM dual;

X
-------------
text

Функция CONCAT(str1, str2), выполняет конкатенацию строк str1 и str2. Если один из аргументов равен NULL, то он воспринимается как пустая строка. Если оба аргумента равны NULL, то функция возвращает NULL.

Пример:
SELECT CONCAT('Test1', 'Test2') x1,
  CONCAT('Test1'NULL) x2,
  CONCAT(NULL, 'Test2') x3,
  CONCAT(NULLNULL) x4  
FROM dual;

X1         X2    X3    X4
-----------------------------
Test1Test2 Test1 Test2 <NULL>

Для конкатенации строк Oracle поддерживает специальный оператор конкатенации "||", который работает аналогично функции CONCAT, например:

SELECT CONCAT('Test1', 'Test2') x1,
       'Test1'||'Test2' x2       
FROM dual;

X1         X2
---------------------
Test1Test2 Test1Test2


Функция INITCAP(str), возвращает строку str, в которой первые буквы всех слов преобразованы в прописные. Функция удобна для форматирования полного имени при построении отчетов.

Пример:
SELECT INITCAP('ИваноВ иван ивАнович') x1  
FROM dual;

X1
--------------------
Иванов Иван Иванович

Функции LTRIM(str [, set]) и RTRIM(str [, set])
LTRIM удаляет все символы с начала строки до первого символа, которого нет в наборе символов set. По умолчанию set состоит из одного пробела и может не указываться.
LTRIM аналогична LTRIM, но удаляет символы, начиная от конца строки.

Пример:
SELECT LTRIM('  test ') x1,
  LTRIM(' $ test', ' $') x2,
  LTRIM(' $ test _ $    ', ' $') x3
FROM dual;

 X1    X2   X3
--------------------
test  test  test _ $

Функции LPAD(str, n [, char]) и RPAD(str, n [, char])
LPAD возвращает строку str, дополненную слева символом char, до достижения строкой длины в n символов. По умолчанию символ-заполнитель равен пробелу и может не указываться. Если длина переданной функции строки больше n, то функция возвращает строку без изменений.
RPAD аналогична LPAD, но производит дополнение строки справа.
Данные функции очень удобны для форматирования текстовой информации при подготовке отчетов.

Пример:
SELECT LPAD('Test', 20) x1,
  RPAD('Test', 20) x2,
  LPAD('Test', 20, '_') x3
FROM dual;

X1                   X2                   X3
--------------------------------------------------------------------
                Test Test                 ________________Test

Функции REPLACE(str, search_str [, replace_str]), осуществляет поиск образца search_str в строке str и каждое найденное вхождение заменяет на replace_str. По умолчанию replace_str равен пустой строке, поэтому вызов функции REPLACE с двумя аргументами приводит к удалению всех найденных вхождений. Поиск подстроки ведется с учетом регистра.

Пример:
SELECT REPLACE('TestTest', 'Tes', '^^^') x1,
  REPLACE('TestTest', 'tes') x2,
FROM dual;

X1       X2      
-----------------
^^^t^^^t TestTest

Функция TRANSLATE(str, from_mask, to_mask), анализирует строку str и заменяет в ней все символы, встречающиеся в строке from_mask, на соответствующие символы из to_mask. Для корректной работы функции строки from_mask и to_mask должны иметь одинаковую длину или строка from_mask должна быть длиннее, чем to_mask. Если from_mask длинее, чем to_mask, и в процессе обработки строки str обнаружатся символы, соответствующие одному из символов from_mask, и при этом им не найдется соответствия в to_mask, то такие символы будут удалены из строки str. Если передать from_mask или to_mask, равное NULL, то функция возвратит значение NULL. Сравнение производится с учетом регистра.

Пример:
SELECT TRANSLATE('Test 345345', 's2', 'E!') x1,
  TRANSLATE('Test 4334', 'T234', 'E') x2
FROM dual;

X1          X2      
----------------
TeEt 345345 Eest

Функция SUBSTR(str, m [,n]), возвращает фрагмент строки str, начиная с символа m длиной n символов. Длину можно не указывать — в этом случае возвращается строка от символа m и до конца строки str. Нумерация символов идет с 1. Если указать m = 0, то копирование все равно начнется с первого символа. Задание отрицательного значения m приводит к тому, что символы отсчитываются от конца строки, а не от начала. Задание значений m, превышающих по абсолютному значению длину строки, приводит к тому, что Функция возвращает NULL.

Пример:
SELECT SUBSTR('TestTest', 3) x1,
 SUBSTR('TestTest', -3) x2,
 SUBSTR('TestTest', 5, 2) x3
FROM dual;

X1     X2  X3
-------------
stTest est Te

Функция INSTR(str, search_str [, n[, m]]),  возвращает позицию первого символа m-го фрагмента строки str, совпадающего со строкой search_str. Сравнение ведется с n-го символа строки str, при сравнении учитывается регистр. По умолчанию n = m = 1, то есть поиск ведется от начала строки и возвращается позиция первого найденного фрагмента. В случае неуспешного поиска Функция возвращает 0. REVERSE - Поиск с конца строки.

Пример:
SELECT INSTR('TestTest', 'T') x1,
  INSTR('TestTest', 't') x2,
  INSTR('TestTest', 'e', 2, 2) x3,
  INSTR('4156456e1r3', '1', 7) x4,
  INSTR('TestTest''e') x5,
  INSTR(REVERSE('TestTest'), 'e') x6
FROM dual;

X1 X2 X3 X4 X5 X6 
----------------------
  1   4   6   9   2   3

Функции LENGTH(str) и LENGTHB(str)
Функция LENGTH(str) возвращает длину строки str в символах. Для пустой строки и значения NULL функция возвращает NULL, поэтому совместно с данной функцией рекомендуется использовать NVL.

Пример:
SELECT LENGTH('Test') x1,
  LENGTH('') x2,
  LENGTH(NULL) x3,
  NVL(LENGTH(''), 0) x4
FROM dual;

X1 X2     X3     X3
-------------------
4  <null> <null> 0

Функция LENGTHB аналогична функции LENGTH, но возвращает длину строки в байтах.

Функция CHR(n), возвращает символ по его коду.

Пример:
SELECT CHR(60) x1
FROM dual;

X1
--
<
Категория: Встроенные функции SQL | Добавил: Akarak (21.03.2012)
Просмотров: 34619 | Комментарии: 3 | Рейтинг: 0.0/0
Всего комментариев: 3
3 Akarak  
0
Вывести символы после запятой
SELECT LENGTH(SUBSTR(9.9999999,
              INSTR(9.9999999, ',', 1) + 1,
              LENGTH(9.9999999) - INSTR(9.9999999, ',', 1) + 1))
FROM dual

2 Гость  
0
SELECT TRIM(BOTH 'q' FROM 'qdddvqq') FROM dual

1 Гость  
0
SELECT DISTINCT UPPER(TRIM(REPLACE(REPLACE(NVL(pole, 'ПУСТО'), CHR(10), ' '), CHR(13), ' '))) AS pole FROM tables

Имя *:
Email *:
Код *:
Меню сайта

Категории раздела
ORACLE, PL/SQL [36]
Скрипты DDL [3]
Скрипты по управлению объектами
Встроенные функции SQL [2]
Встроенные функции SQL

Интересные сайты
  • sql.ru
  • all-oracle.ru
  • oranet.ru
  • oracloid.ru
  • forum.vingrad.ru

  • Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0

    Поиск

    Copyright MyCorp © 2024
    Используются технологии uCoz