Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выровнять текст в строке, Дополнить символами строку с двух сторон 
V
    Опции темы
izver84
Дата 11.3.2016, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



Добрый день.

Вопрос такой .
Есть функция function 1.
Есть таблица table 1. В ней есть столбец column1 char(80);
В функции есть переменная типа char. 
Код

Variab char (80);

Мне надо записать строку  в этот столбец так что-бы данные были посредине.
Пример функции:
Код

CREATE OR REPLACE FUNCTION function 1 ()
DECLARE
Variab char (80);
BEGIN
Variab='Яблоко' ;

update table 1 set column1=Variab; 
END;


результат
|Яблоко                      |

lpad добавляет с левой части строки определенный набор символов.
rpad добавляет с правой части строки определенный набор символов.

но это не то.

Аналогичные функции в foxpro
Код

Функция PADL( ) вставляет символы-заполнители слева, функция PADR( ) - справа, а функция PADC( ) - по обеим сторонам.


Есть ли аналог у функции PADC( ) ?
Результат должен быть такой.
|              Яблоко        |





--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Akina
Дата 11.3.2016, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
tzirechnoy
Дата 11.3.2016, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 1
Всего: 16



Код
CREATE OR REPLACE FUNCTION cpad(varchar, int, varchar = ' ') 
     RETURNS varchar AS $$
     SELECT rpad(lpad($1, ($2+length($1))/2, $3), $2, $3);
$$ LANGUAGE SQL IMMUTABLE;

PM MAIL   Вверх
izver84
Дата 14.3.2016, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 302
Регистрация: 5.11.2007

Репутация: нет
Всего: 1



Akina
tzirechnoy,  Спасибо. 
Я что-то подобное написал. Но думал может есть уже готовая функция.



--------------------
Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно. 
PM MAIL   Вверх
Akina
Дата 14.3.2016, 10:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Цитата(izver84 @  14.3.2016,  11:21 Найти цитируемый пост)
 думал может есть уже готовая функция.

Расположение значения "по центру" - это фича отображения, на которую SQL-серверу чхать с высокой колокольни. 
Это у интерфейсной программы должна голова болеть за это дело. Типа Justify=Center.

PS. И по этой самой причине мне кажется, что ты что-то делаешь неправильно...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.1099 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.