Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Построение правильного запроса в для вывода из базы KLADR  [new]
fs99
Member

Откуда: Ханты-Мансийск
Сообщений: 213
Доброго времени суток, Господа и Дамы.

Вопрос следующий.
Имеется таблица с данными kladr
CODE
8600000000000 - регион
8700000000000 - регион
8800000000000 - регион
8900000000000 - регион
9000000000000 - регион
9100000000000 - регион
8600100000000 - район
8600200000000 - район
8600300000000 - район
8700100000000 - район
8700200000000 - район
и так далее

чтобы вывести записи с регионами пользую запрос

SELECT * FROM kladr.dbf
WHERE CODE LIKE '%00000000000'
ORDER BY NAME

Исходя из того, что код имеет следующий вид: AABBBCCCDDDEEE

как вывести записи с районами?
то есть те, у которых число AA и BBB больше нуля, а остальные CCCDDDEEE равны 000000000.
23 сен 09, 15:49    [7698444]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SELECT * FROM kladr.dbf
WHERE CODE LIKE '[AA][B]__0%'
ORDER BY NAME
или
SELECT * FROM kladr.dbf
WHERE CODE NOT LIKE '%[C-E]%'
ORDER BY NAME

-------------------------------------
Jedem Das Seine
23 сен 09, 15:53    [7698494]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
O_val
Member

Откуда:
Сообщений: 157
substring
23 сен 09, 15:53    [7698496]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Maxx,

не понил задачи ,ступиль :)) сорри

а вапрос .. если такое число будет 12345 0 12000000 - его вібирать надо ?
23 сен 09, 15:56    [7698530]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
fs99
Member

Откуда: Ханты-Мансийск
Сообщений: 213
Maxx
SELECT * FROM kladr.dbf
WHERE CODE LIKE '[AA][B]__0%'
ORDER BY NAME
или
SELECT * FROM kladr.dbf
WHERE CODE NOT LIKE '%[C-E]%'
ORDER BY NAME

-------------------------------------
Jedem Das Seine


при таком запросе попадут строки и те которые являются регионами
23 сен 09, 15:56    [7698532]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
fs99
Member

Откуда: Ханты-Мансийск
Сообщений: 213
Maxx
Maxx,

не понил задачи ,ступиль :)) сорри

а вапрос .. если такое число будет 12345012000000 - его вібирать надо ?


нет,

1234501200000
AABBBCCCDDDEE
так как ССС > 0
23 сен 09, 15:58    [7698557]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
fs99,

яж говорю не понял условия,сорри.
23 сен 09, 15:58    [7698562]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
так если так,то чем ваш запрос не устраивает то,которій ві написали ,тока сдвинте его вправа на 2 знака????

-------------------------------------
Jedem Das Seine
23 сен 09, 16:00    [7698581]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
Anddros
Member

Откуда:
Сообщений: 1077
select * from kladr where code like '_____00000000' and code not like '__00000000000'
23 сен 09, 16:55    [7699000]     Ответить | Цитировать Сообщить модератору
 Re: Построение правильного запроса в для вывода из базы KLADR  [new]
__Avenger__
Member

Откуда:
Сообщений: 1984
Anddros,

Кладр уже 100 раз обсуждался. Лучшее на мой взгляд решение - это привести кладр к дереву и работать с ним уже как с деревом.
CREATE TABLE KLADR (
    OBJECT_ID           D$KEYID NOT NULL,
    OBJECT_PARENT_FK    D$KEYID,
    OBJECT_LEVEL        D$SMALLINT NOT NULL,
    OBJECT_NAME         D$NAME NOT NULL,
    OBJECT_PREFIX_NAME  D$PREFIX_NAME NOT NULL,
    OBJECT_INDEX        D$INDEX,
    OBJECT_OKATO_RID    D$SMALLINT,
    OBJECT_OKATO_B1     D$SMALLINT,
    OBJECT_OKATO_B2     D$SMALLINT,
    OBJECT_OKATO_B3     D$SMALLINT
);


CREATE TABLE STREETS (
    STREET_ID           D$KEYID NOT NULL,
    OBJECT_FK           D$KEYID NOT NULL,
    STREET_NAME         D$NAME NOT NULL,
    STREET_PREFIX_NAME  D$PREFIX_NAME NOT NULL,
    STREET_INDEX        D$INDEX
);
23 сен 09, 17:09    [7699066]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить