Строковые функции SQL. Строковые функции ms sql


Строковые функции

Строковые функции используются для манипулирования значениями данных в столбцах, которые обычно имеют символьный тип данных (табл. 4.7).

Таблица 4.7. Строковые функции

Функция

Описание

ASCII (character)

Преобразует указанный символ в эквивалентный (ASCII) код. Возвращает целое число. Пример:

SELECT ASCII('А') = 65

CHAR (integer)

Преобразует ASCII-код в эквивалентный символ. Пример:

SELECT CHAR(65) = 'А'

CHARINDEX(zl, z2)

Возвращает начальную позицию, в которой строка zl впервые встречается в строке z2. Возвращает 0, если zl не присутствует в z2. Пример:

SELECT CHARINDEX ('Ы', 'table') = 3

DIFFERENCE[zl, z2)

Возвращает целое между 0 и 4, которое является разницей между значениями soundex двух строк zl и z2. (soundex возвращает число, которое характеризует звучание строки. При помощи этой функции можно определить строки с похожим звучанием.) Пример:

SELECT DIFFERENCE('spelling', 'telling') = 2 Звучание несколько похожее; если же функция возвращает 0, то строки не звучат одинаково

Таблица 4.7 (продолжение)

Функция

Описание

LEFT (z, length)

Возвращает первые length символов строки z

LEN(z)

Возвращает количество символов (но не байтов) в заданном строковом выражении, исключая конечные пробелы

LOWER(zl)

Преобразует все прописные буквы строки zl в строчные буквы. Буквы в нижнем регистре, цифры и другие символы не изменяются. Пример:

SELECT LOWER('BiG') = 'big'

LTRIM(z)

Удаляет начальные пробелы в строке z. Пример: SELECT LTRIM(' String') = 'String'

NCHAR (i)

Возвращает символ Unicode, заданный целочисленным кодом, как определено в стандарте Unicode

QUOTENAME (charstrlng)

Возвращает строку Unicode, к которой добавлены разделители (кавычки), чтобы сделать строку допустимым идентификатором с разделителями

PATINDEX (%p%, expr)

Возвращает начальную позицию первого вхождения шаблона р в заданном выражении ехрг или ноль, если шаблон в строке не найден. Примеры:

SELECT PATINDEX('%gs%', 'longstring') = 4;

SELECT RIGHT(ContactName, LEN(ContactName) - PATINDEX('% %', ContactName)) AS First name FROM Customers;

Второй запрос возвращает все имена из столбца

customers

REPLACE[strl, str2, str3)

Заменяет все вхождения строки str2 в строке strl на значение str3. Пример:

SELECT REPLACE('shave', 's', 'be') = 'behave'

REPLICATE(z, i)

Повторяет i раз строку z. Пример:

SELECT REPLICATE('a1, 10) = 'aaaaaaaaaa'

REVERSE(z)

Отображает строку z в реверсированном, обратном, порядке. Пример:

SELECT REVERSE('calculate') = 'etaluclac'

RIGHT(z, length)

Возвращает последние length символов строки z. Пример:

SELECT RIGHT('Notebook', 4) = 'book'

RTRIM(z)

Удаляет конечные пробелы в строке z. Пример:

SELECT RTRIMCNotebook ') = 'Notebook'

Таблица 4.7 (окончание)

Функция

Описание

SOUNDEX(а)

Возвращает четырехсимвольный код soundex, используемый для определения похожести звучания двух строк. Пример:

SELECT SOUNDEX('spelling') = S145

SPACE {length)

Возвращает пробельную строку с длиной, заданной параметром length. Пример:

SELECT SPACE = ' '

STR(f[, len[, d]])

Преобразует заданное выражение с плавающей точкой f в строку. Параметр 1еп - длина строки, включая десятичную точку, знак числа, цифры и пробелы (по умолчанию 10), d- количество цифр справа от десятичной точки. Пример:

SELECT STR(3.45678, 4, 2) = '3.46'

STUFF (zl, a, length, z2)

Заменяет часть строки zl на строку z2, начиная с позиции а, заменяя length символов строки zl. Примеры: SELECT STUFF('Notebook', 5, 0, ' in а ') = 'Note in a book'

SELECT STUFF('Notebook', 1, 4, 'Hand') =

'Handbook'

SUBSTRING (z, a, length)

Выделяет подстроку строки z, начиная с позиции а, длиной length. Пример:

SELECT SUBSTRING('wardrobe1, 1, 4) = 'ward'

UNICODE(z)

Возвращает целое значение, как определено стандартом Unicode, для первого символа исходного выражения Z

UPPER (z)

Преобразует все строчные буквы строки z в прописные. Прописные буквы и цифры не изменяются. Пример:

SELECT UPPER('lower') = 'LOWER'

⇐Функции даты | Microsoft SQL Server | Системные функции⇒

www.delphiplus.org

Строковые функции SQL | Интернет технологии

Продолжаем серию видеоуроков по изучению языка программирования для управления базами данных, языка запросов SQL. В этом, 9 видеуроке, рассматриваем строковые функции SQL. Для начала вспомним предыдущие уроки:

Что такое cтроковые функции SQL

Строковые функции SQL предназначены для производства определенных действий, а главное, для возвращения отредактированных значений.

Например, у вас в таблице все поля имеют значения из 15 символов. Вам, при редактировании таблицы, нужно, чтобы значения были сокращены и после запроса, вернулись лишь первые 5 символов. Это и можно сделать при помощи строковых функции SQL.

Строковые функции SQL, описания

Функция CONCAT

Строковая функция CONCAT применяется для объединения значений двух полей в один.

Select CONCAT (value, subvalue) ЧТО_ВЫБРАТЬ FROM откуда_выбрать //объединяем столбцы value и survalue, в таблице откуда_выбрать.

Функция INITCAP

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

Применяется для улучшения внешнего вида таблиц и исправления правил заполнения.

Select INITCAP (value) ЧТО_ВЫБРАТЬ FROM откуда_выбрать

Функция LOWER

Строковая функция LOWER, возвращает после запроса все слова с маленькой буквы.

Select LOWER (value) ЧТО_ВЫБРАТЬ FROM откуда_выбрать

Функция UPPER

Строковая функция UPPER, возвращает после запроса все слова с заглавной буквы.

Select UPPER (value) ЧТО_ВЫБРАТЬ FROM откуда_выбрать

Функция LPAD

Строковая функция  LPAD предназначена, для дополнения значения символами слева. Используется, для увеличения длинны поля.

Select LPAD (value, 20, '-') as value FROM откуда_выбрать //увеличиваем длину поля до 20 знаков, добавляя к значению тире слева.

Функция RPAD

Строковая функция аналогична функции LPAD, только символы дополняются слева значения.

Select RPAD (value, 20, '-') as value FROM откуда_выбрать //увеличиваем длину поля до 20 знаков, добавляя к значению тире справа.

Функция LTRIM

Строковая функция LTRIM удаляет указанные символы слева значения.

Select LTRIM (city, 'г.') ЧТО_ВЫБРАТЬ FROM откуда_выбрать //удаляем г. Слева значения (город).

Функция RTRIM

Строковая функция LTRIM удаляет указанные символы справа.

Функция REPLACE

Строковая функция REPLACE ищет совпадение символов в строке и возвращает после запроса строку с замененными совпадающими символами на указанные вами символы.

Select REPLACE (value,  '/', '-' ) FROM откуда_выбрать //меняем символы слеш на тире.

Функция TRANSLATE

Строковая функция  TRANSLATE  меняет все символы в записи, на указанные новые символы.

Функция SUBSTR

Строковая функция SUBSTR возвращает только указанный диапазон символов.

Select SUBSTR (ident, '5', '9') FROM откуда_выбрать //выводим символы с 5 по 9.

Функция LENGTH

Строковая функция LENGTH считает количество символов в записи.

Select LENGTH (value) FROM откуда_выбрать

Это все строковые функции SQL, а теперь видеоурок.

9 Видеоурок строковые функции SQL

©webonto.ru

Похожие статьи:

  • Функции для работы с числами SQL, урок 11
  • Представления SQL, урок 17
  • Внешние ключи SQL, урок 13
  • Нормальные формы SQL, урок 16
  • Подзапросы SQL, урок 15 — вложенные запросы
  • 5 Видеоурок, Команда SQL SELECT
  • 6 Видео Урок, команды DELETE и UPDATE, удалять и обновлять записи, языка SQL
  • Соединения SQL, урок 14 — соединение таблиц в одном запросе
  • SQL ALTER TABLE — sql запрос на модификацию таблицы базы данных
  • Нужные SQL приемы, SQL, урок 12
  • Понятие и назначение SQL запроса
  • Урок 3, Установка MySQL
  • Что такое база данных — понятие база данных в информатике
  • Введение в SQL, видео урок 1

(Просмотров всего: 177)

Поделиться ссылкой:

webonto.ru

Строковые функции SQL MS SQL Server

Этот единственный запрос преобразует эту строку в результат таблицы с столбцами [ItemNumber] и [ItemValue], плюс только возвращает строки, где значение больше нуля. Это работает для вас?

DECLARE @OrderString VARCHAR(MAX) = '1=1;|2=|3=|4=1;|5=|'; WITH Step0 AS ( SELECT String = REPLACE(@OrderString, ';', '') ), Step1 AS ( SELECT Block = SUBSTRING(String, 1, CHARINDEX('|', String) - 1), String = SUBSTRING(String, CHARINDEX('|', String) + 1, LEN(String)) FROM Step0 UNION ALL SELECT Block = SUBSTRING(String, 1, CHARINDEX('|', String) - 1), String = SUBSTRING(String, CHARINDEX('|', String) + 1, LEN(String)) FROM Step1 WHERE LEN(String) > 0 ), Step2 AS ( SELECT ItemNumber = SUBSTRING(Block, 1, CHARINDEX('=', Block) - 1), ItemValue = SUBSTRING(Block, CHARINDEX('=', Block) + 1, LEN(Block)) FROM Step1 ), Step3 AS ( SELECT ItemNumber = CAST(ItemNumber AS INT), ItemValue = CAST(ItemValue AS INT) FROM Step2 WHERE CAST(ItemValue AS INT) > 0 ) SELECT * FROM Step3;

PS: Нашел упражнение любопытно, поэтому я подумал, что буду использовать его для публикации, надеюсь, что вы не возражаете:

https://tangodude.wordpress.com/2014/02/16/t-sql-extracting-serialized-data-from-string-in-one-go/

Если он «передан из XML», вам, вероятно, будет гораздо лучше передавать XML, а не строку. Обработка XML в то, что вы хотите, будет довольно простой.

Вы даже можете сделать что-то уродливое, чтобы вернуть строку в XML:

DECLARE @OrderString VARCHAR(MAX) = '1=1;|2=|3=|4=1;|5=|'; DECLARE @xml XML SELECT @xml = CAST('<order_line><item_id>' +REPLACE(REPLACE(REPLACE(STUFF(@OrderString,LEN(@OrderString),1,''),';',''),'|' ,'</quantity></order_line><order_line><item_id>'),'=','</item_id><quantity>') +'</quantity></order_line>' AS XML)

И тогда это действительно просто:

SELECT c.value('(item_id)[1]', 'int') item_id ,c.value('(quantity)[1]', 'int') quantity FROM @xml.nodes('/order_line') T(c)

sqlserver.bilee.com

Функция SUBSTRING (SQL Server Compact)

Эта документация перемещена в архив и не поддерживается.

Возвращает часть символьного, двоичного, текстового выражения или выражения с изображением.

SUBSTRING ( expression, start, length ) expression

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

start

Целочисленное значение или выражение, которые можно неявно преобразовать в int, указывающее начало подстроки.

length

Целочисленное значение или выражение, которые можно неявно преобразовать в int, указывающее длину подстроки.

Возвращает символьные данные, если выражение expressionотносится к поддерживаемым типам символьных данных. Возвращает двоичные данные, если выражение expressionотносится к поддерживаемым типам двоичных данных. Если start = 1, часть строки начинается с первого знака выражения.

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

Заданное выражение

Возвращаемый тип

image

varbinary

ntext

nvarchar

В следующем примере показано возвращение начальной буквы имени и полной фамилии для каждого из сотрудников в таблице сотрудников.

SELECT SUBSTRING([First Name],1,1) AS Initial, [Last Name] FROM Employees

Результирующий набор выглядит следующим образом:

Initial Last Name ---------------------------- N Davolio A Fuller J Leverling M Peacock S Buchanan M Suyama R King L Callahan A Dodsworth A Hellstern T Smith C Patterson J Brid X Martin L Pereira (15 rows affected)

msdn.microsoft.com