SYBASE (988809), страница 7
Текст из файла (страница 7)
Кроме этого, можно соединять операцией конкатенации двоичные и символьные выражения следующим образом:
select (<выражение> + <выражение> [ + <выражение>]…)
Обозначение типов аргументов в таблице2:
-
char_expr - типы char, varchar, nchar и nvarchar;
-
expression - типы char_expr и типы binary и varbinary;
-
pattern - типы данных char_expr, которые можно включать в сопоставление с образцами;
-
approx_numeric - типы float, real и double precition;
-
integer_expr - типы tinyint, smallint и int;
-
start - тип integer_expr;
-
length - тип integer_expr.
Таблица 2
Функция | Аргумент(ы) | Результат |
1) ascii | (char_expr) | код ASCII для первого символа в выражении |
2) char | (integer_expr) | преобразует цифру, занимающую 1 байт в символ длиной 1 байт |
3) charindex | (expression1, expression2) | ищет первое вхождение выражения1 в выражение2 и возвращает номер позиции; если не находит вообще, то возвращает 0 |
4) char_length | (char_expr) | количество символов в строке или тексте |
5) difference | (char_expr1, char_expr2) | разность между двумя значениями типа soundex (см. ниже) |
6) lower | (char_expr) | преобразует большие буквы в маленькие |
7) ltrim | (char_expr) | убирает начальные пробелы |
8) patindex | (“%pattern%”, char_expr [using {bytes | chars | characters}]) | возвращает номер первой позиции вхождения pattern в char_expr или 0, если вхождения нет |
9) replicate | (char_expr, integer_expr) | возвращает строку типа char_expr, содержащуюся в аргументе1 и повторяемую <аргумент2> раз (max длина строки 255 байт) |
10) reverce | (char_expr) | реверс строки, например: “abcd” - “dcba” |
Функция | Аргумент(ы) | Результат |
11) right | (char_expr, integer_expr) | возвращает часть строки, состоящей из <аргумента2> символов, считая справа |
12) rtrim | (char_expr) | убирает замыкающие пробелы |
13) soundex | (char_expr) | возвращает четырехсимвольный код символьной строки, состоящий из римских букв |
14) space | (integer_expr) | возвращает строку из указанного количества пробелов |
15) str | (approx_numeric [, length [, decimal]]) | символьное представление числа с плавающей точкой; length устанавливает общее число знаков, а decimal - число знаков после десятичной точки; если length и decimal не указываются, то по умолчанию length=10, а decimal=0 |
16) stuff | (char_expr1, start, length, char_expr2) | удаляет length символов из expr1, начиная с start, а затем вставляет expr2 в expr1, начиная с start; если expr2=null, то только удаляет |
17) substring | (expression, start, length) | выделение подстроки в expression длиной length, начиная с start |
18) upper | (char_expr) | преобразование маленьких букв в большие |
19) + | expression + expression | конкатенация двух и более символьных или бинарных выражений |
Примеры:
-
select au_lname, substring (au_fname, 1, 1) from authors
-
select charindex(“wonderful”, notes), patindex(“wonderful”, notes) from titles
where title_id = “TC3218”
-
select stuff(“abc”, 2, 3, “xyz”)
-
select (“abc” + “def”)
Строковые функции могут вкладываться друг в друга.
-
select substring(pub_id + title_id, 1, 6) from titles where price > $20
Текстовые функции
Текстовые функции используются для работы с данными типа text и image.
Таблица 3
Функция | Аргумент(ы) | Результат |
1) patindex | (“%pattern%”,char_expr [using {bytes | chars | characters}]) | возвращает числовое представление значения первой позиции первого вхождения pattern в символьную строку или 0 - если pattern не найден |
2) textptr | (<имя текстовой колонки>) | возвращает указатель на текст (16байтное двоичное число) |
3) textvalid | (“<имя таблицы>..<имя колонки>”, <указатель на текст>) | возвращает 1, если указатель допустимый и 0 - в противном случае |
4) set textsize | {n | 0} | задает max длину в байтах для колонки типа text/image в select-предложении; если 0, то max длина равна 32 K |
Пример:
declare @val varbinary(16)
select @val = textptr(blurb) from texttest
Математические функции
Общий синтаксис вызова математической функции:
<имя функции> (<аргументы>)
Типы аргументов:
-
approx_numeric - это типы float, real и double precition;
-
integer - типы tinyint, smallint и int;
-
numeric - это типы approx_numeric, numeric, dec, decimal, все integer и money;
-
power - это типы numeric, approx_numeric и money.
Таблица 4
Функция | Аргумент(ы) | Результат |
1) abs | (numeric) | абсолютное значение аргумента |
2) acos | (approx_numeric) | арккосинус (в радианах) |
3) asin | (approx_numeric) | арксинус (в радианах) |
4) atan | (approx_numeric) | арктангенс (в радианах) |
5) atn2 | (approx_numeric1, approx_numeric2) | арктангенс деления аргумента1 на аргумент2 |
6) ceiling | (numeric) | округление до ближайшего целого, большего или равного аргументу |
7) cos | (approx_numeric) | косинус (в радианах) |
8) cot | (approx_numeric) | котангенс (в радианах) |
9) degrees | (numeric) | преобразование радианов в градусы |
10) exp | (approx_numeric) | число e в степени аргумент |
11) floor | (numeric) | округление до ближайшего целого, меньшего или равного аргументу |
12) log | (approx_numeric) | натуральный логарифм |
13) log10 | (approx_numeric) | десятичный логарифм |
14) pi | () | число пи |
15) power | (numeric, power) | преобразование числа типа numeric в число типа power |
16) radians | (numeric) | преобразование градусов в радианы |
17) rand | ([integer]) | функция random на отрезке [0;1] или для числа типа integer |
18) round | (numeric, integer) | округление числа типа numeric до числа из integer знаков |
19) sign | (numeric) | знак числа |
20) sin | (approx_numeric) | синус (в радианах) |
21) sqrt | (approx_numeric) | квадратный корень |
22) tan | (approx_numeric) | тангенс (в радианах) |
Примеры:
-
select ceiling(123.45) => 124.
-
select round(123.4545,2) => 123.4500
Функции даты (времени)
Таблица 5
Часть даты | Аббревиатура | Значения |
1) год | 1) yy | 1) 1753¸9999 |
2) квартал | 2) qq | 2) 1¸4 |
3) месяц | 3) mm | 3) 1¸12 |
4) день года | 4) dy | 4) 1¸366 |
5) день | 5) dd | 5) 1¸31 |
6) неделя | 6) wk | 6) 1¸54 |
7) день недели | 7) dw | 7) 1¸7 (1-Sunday) |
8) час | 8) hh | 8) 0¸23 |
9) минута | 9) mi | 9) 0¸59 |
10) секунда | 10) ss | 10) 0¸59 |
11) миллисекунда | 11) ms | 11) 0¸999 |
Таблица 6
Функция | Аргумент(ы) | Результат |
1) getdate | ( ) | Текущая системная дата и время |
2) datename | (datepart, date) | часть даты как строка ASCII |
3) datepart | (datepart, date) | часть даты как целое число |
4) datediff | (datepart, date, date) | количество времени между 2-мя датами в частях даты |
5) dateadd | (datepart, number, date) | дата, получаемая прибавлением частей даты к другой дате |
Примеры:
-
select getdate();
-
select datediff(month, pubdate, ”Nov 30 1985”) from titles;
-
select dateadd(day, 3, pubdate) from titles
Функции преобразования одних типов данных в другие и форматирование дат
SQL-сервер поддерживает три функции преобразования типов:
-
convert;
-
inttohex;
-
hextoint.
Синтаксис функции convert: