Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ну как составить запрос!


Rel_ ©   (2003-07-08 08:38:00) 

Мастера, отсоветуйте сл:

значения некоего поля1:
14
01
11
02
11
12
04

необходимо поставить соотсетствие значениям в поле2
01, 11 - 1
02, 12 - 2
04, 14 - 4

и отсортировать результат по полю 2

рез-т:

поле1 поле2
01 1
11 1
02 2
12 2
14 4
04 4


kravchuk   (2003-07-08 18:33:00) [1]

если поле1 integer можно еще так

select field1,
(field1-cast(field1/10 as integer)*10) as field2
from table1


Anatoly Podgoretsky   (2003-07-08 11:20:00) [2]

ЮЮ © (08.07.03 09:47)
Смотри Rel_ (08.07.03 09:09)
1) if (поле1 = "01") or (поле1 = "11") then поле2 := 1;

Так что речь именно о втором символе, никакиз комбинаций, ну не может быть поле1 один одновременно и 01 и 11, и также 02/12 и т.л. Только второй символ, щаписать его в поле 2


sniknik   (2003-07-08 11:04:00) [3]

> PS: если возникнут идейки -- буду благодарен !
идеек до хрена, инфы не хватает. (о базе к примеру)

по мотивам Rel_ (08.07.03 09:09)
и считая что нужна не просто вторая буква а жесткое соответствие, и опять для базы про которую я думаю.
типа
SELECT поле1, iif(поле1 in ("01", "11"),1,
iif(поле1 in ("02", "12"),2,
iif(поле1 in ("03", " 18"),3,
-1))) as поле2 from Table777
ORDER BY 2


ЮЮ   (2003-07-08 09:47:00) [4]

я прав, если возможна комбинация типа:
06, 17 -- 8

А если действитедьно надо взять только второй символ , то достаточно SUBSTRING(Field1 FROM 2) AS Field2


Е-Моё имя   (2003-07-08 09:45:00) [5]


> Anatoly Podgoretsky © (08.07.03 08:56)

гыыыы
цыфру наверна? ;))))


Жук   (2003-07-08 09:43:00) [6]

Гм-м... Нет слов.


Rel_   (2003-07-08 09:40:00) [7]

Вот, ЮЮ © (08.07.03 09:31), вы абсолютно правы - скорее всего придётся именно так, но я хотел именно в запроме, ещё и прогруппировать с суммой - похоже не получится.

Всё равно, ВСЕМ спасибо за участие!

PS: если возникнут идейки -- буду благодарен !


Жук   (2003-07-08 09:38:00) [8]

И ещё до кучи :-)))
SELECT Field1,substr(Field1,strlen(Field1),strlen(Field1)) as Field2
from MyTable
ORDER BY 2


Johnmen   (2003-07-08 09:33:00) [9]

UPDATE Table SET FieldN=CAST(RIGHT(FieldC,1) AS INTEGER)


ЮЮ   (2003-07-08 09:31:00) [10]

>05, 15 -- 5
полностью соответствует этой же схеме :-)

Создать и заполнить таблицу с нужными соответствиями


Rel_   (2003-07-08 09:23:00) [11]

а как быть в ситуации, если нужно поставить соответствие:
05, 15 -- 5.

Поймите, проще говоря, мне нужна имитация паскалевского "if" с жёстким условием.


интересующийся   (2003-07-08 09:10:00) [12]

SELECT поле1, Right(поле1,1) as поле2name from Table777 ORDER BY 2


Rel_   (2003-07-08 09:09:00) [13]

Нет,народ - у меня жёсткое соответствие

на паскале бы энто выглядело так:

1) if (поле1 = "01") or (поле1 = "11") then поле2 := 1;
......

и т.д.

2) select ... order by поле2


вот как мне в запросе объявить мнимое поле, например поле2, в которое заносится значение в зависимости от поля1 (условия жесткие - т.е. я сам точно знаю, что если встретилось значение "01" или "11" - то надо поставить соответствие 1) и отсортировать по полю2.


Anatoly Podgoretsky   (2003-07-08 08:56:00) [14]

ЮЮ © (08.07.03 08:49)
Он хочет выделить последнею букву


sniknik   (2003-07-08 08:52:00) [15]

SELECT поле1, Right(поле2,1) as поле2name from Table777 ORDER BY Right(поле2,1)

(считаем что поле строка (ноль в начале), и база та о которой ядумаю :о)))


ЮЮ   (2003-07-08 08:49:00) [16]

>необходимо поставить соотсетствие значениям в поле2
01, 11 - 1
02, 12 - 2
04, 14 - 4

А почему не
01, 11 - 2
02, 12 - 1
04, 14 - 1 :-)

По твоим цифрам совсем не очевидно, что ты хочешь получить.


Наверх

Титульная страница Поиск, карта сайта Написать письмо