powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменить последовательность данных
12 сообщений из 12, страница 1 из 1
Изменить последовательность данных
    #36783293
rep_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
ASE12.5
Помогите плиз
есть данные в ячейке адрес "Москва, ул Вернадского, д.11, кв 16"
как сделать в запросе чтобы выходило наоборот "д.11, кв 16, ул Вернадского, Москва"
Разделитель запятая
Спасибо
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36783319
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rep_user wrote:

> ASE12.5
> Помогите плиз
> есть данные в ячейке адрес "Москва, ул Вернадского, д.11, кв 16"

> как сделать в запросе чтобы выходило наоборот "д.11, кв 16, ул
> Вернадского, Москва"
> Разделитель запятая

А никак, надо было правильно БД проектировать, хранить все элементы
адреса в отдельных полях.

Теперь тебе и нужно думать, какой там разделитель, какой там
формат адреса (они вообще-то разные бывают, адреса,
например типа "Москва, Кремль, Путину")

Вот и думай. Функции выделения строк в ASE достаточно аскетичные.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36783328
rep_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разделитель запятая
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36783353
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rep_user wrote:

> Разделитель запятая

Да мне-то это зачем ? Это тебе нужно знать, какой разделитель.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36784303
KSerega
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rep_user,

Код: plaintext
1.
2.
3.
4.
5.
select v.home||', '||v.street||' '||v.city from (
select 'Москва, ул Вернадского, д.11, кв 16' as @var, 
substr(@var, 1 ,locate(@var,',', 1 )- 1 ) as City,
trim(substr(trim(substr(@var,locate(@var,',', 1 )+ 1 )), 1 ,locate(trim(substr(@var,locate(@var,',', 1 )+ 1 )),',', 1 ))) as street,
trim(substr(trim(substr(@var,locate(@var,',', 1 )+ 1 )),locate(trim(substr(@var,locate(@var,',', 1 )+ 1 )),',', 1 )+ 1 )) as home
from dummy) v
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36784337
rep_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей ваш запрос выводит ошибку
Incorrect syntax near '@var'.
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36784443
У него пример на ASA. На ASE, как сказал Master Ziv - геморройно такое делать.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create table t(s varchar( 80 ))

insert into t values ('Москва, ул Вернадского, д.11, кв 16')

go


select rtrim(substring (ltrim(substring (ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )),charindex(', ',ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )))+ 1 , char_length(ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) ))) )), 1 , charindex(', ',ltrim(substring (ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )),charindex(', ',ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )))+ 1 , char_length(ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) ))) )))- 1  )) 
+
', ' +
ltrim(substring (ltrim(substring (ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )),charindex(', ',ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )))+ 1 , char_length(ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) ))) )),charindex(', ',ltrim(substring (ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )),charindex(', ',ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )))+ 1 , char_length(ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) ))) )))+ 1 , char_length(ltrim(substring (ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )),charindex(', ',ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )))+ 1 , char_length(ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) ))) ))) ))
+
', ' +
rtrim(substring (ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )), 1 , charindex(', ',ltrim(substring (s,charindex(', ',s)+ 1 , char_length(s) )))- 1  )) 
+
', ' +
rtrim(substring (s, 1 , charindex(', ',s)- 1  ))
from t

ужасть
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36784463
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так не удивительно. Это не для ASE код был.
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36784465
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да это везде геморойно делать. А главное -- бесполезно, потому что формата адреса нет.
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36784488
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rep_user wrote:

> есть данные в ячейке адрес "Москва, ул Вернадского, д.11, кв 16"
> как сделать в запросе чтобы выходило наоборот "д.11, кв 16, ул
> Вернадского, Москва"


Там будет что -то типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select

   substring( a.adress,  1 , patindex("%,%", a.adress ) ) as city,  -- это будет 
"Москва"
   substring( substring( a.adress,  1 , patindex("%,%", a.adress ) ),  1 , 
patindex("%,%", substring( a.adress,  1 , patindex("%,%", a.adress ) ) ) ) as 
street,  -- это будет "ул Вернадского"
-- и так далее

from XXX a
where ...

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36784489
если все данные через запятую в таком формате -то реально. Но скорее всего, их операторы вводят в строку адреса абы как , в стиле "тупик Коммунизма, зеленая дверь налево, спросить дядю Васю" - и такие данные токмо человеческий интеллект разберет
...
Рейтинг: 0 / 0
Изменить последовательность данных
    #36785395
gda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
исходя из теории нормализации таблица не правельно спроектирована !!!

Код: plaintext
1.
2.
3.
4.
First Normal Form (1NF)
First normal form (1NF) sets the very basic rules for an organized database:

    * Eliminate duplicative columns from the same table.
    * Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key). 

если менять таблицу нельзя тогда "substring"
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменить последовательность данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]