Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
Внизну как составить запрос! Найти похожие ветки
← →
Rel_ (2003-07-08 08:38) [0]Мастера, отсоветуйте сл:
значения некоего поля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
← →
ЮЮ (2003-07-08 08:49) [1]>необходимо поставить соотсетствие значениям в поле2
01, 11 - 1
02, 12 - 2
04, 14 - 4
А почему не
01, 11 - 2
02, 12 - 1
04, 14 - 1 :-)
По твоим цифрам совсем не очевидно, что ты хочешь получить.
← →
sniknik (2003-07-08 08:52) [2]SELECT поле1, Right(поле2,1) as поле2name from Table777 ORDER BY Right(поле2,1)
(считаем что поле строка (ноль в начале), и база та о которой я думаю :о)))
← →
Anatoly Podgoretsky (2003-07-08 08:56) [3]ЮЮ © (08.07.03 08:49)
Он хочет выделить последнею букву
← →
Rel_ (2003-07-08 09:09) [4]Нет,народ - у меня жёсткое соответствие
на паскале бы энто выглядело так:
1) if (поле1 = "01") or (поле1 = "11") then поле2 := 1;
......
и т.д.
2) select ... order by поле2
вот как мне в запросе объявить мнимое поле, например поле2, в которое заносится значение в зависимости от поля1 (условия жесткие - т.е. я сам точно знаю, что если встретилось значение "01" или "11" - то надо поставить соответствие 1) и отсортировать по полю2.
← →
интересующийся (2003-07-08 09:10) [5]SELECT поле1, Right(поле1,1) as поле2name from Table777 ORDER BY 2
← →
Rel_ (2003-07-08 09:23) [6]а как быть в ситуации, если нужно поставить соответствие:
05, 15 -- 5.
Поймите, проще говоря, мне нужна имитация паскалевского "if" с жёстким условием.
← →
ЮЮ (2003-07-08 09:31) [7]>05, 15 -- 5
полностью соответствует этой же схеме :-)
Создать и заполнить таблицу с нужными соответствиями
← →
Johnmen (2003-07-08 09:33) [8]UPDATE Table SET FieldN=CAST(RIGHT(FieldC,1) AS INTEGER)
← →
Жук (2003-07-08 09:38) [9]И ещё до кучи :-)))
SELECT Field1,substr(Field1,strlen(Field1),strlen(Field1)) as Field2
from MyTable
ORDER BY 2
← →
Rel_ (2003-07-08 09:40) [10]Вот, ЮЮ © (08.07.03 09:31), вы абсолютно правы - скорее всего придётся именно так, но я хотел именно в запроме, ещё и прогруппировать с суммой - похоже не получится.
Всё равно, ВСЕМ спасибо за участие!
PS: если возникнут идейки -- буду благодарен !
← →
Жук (2003-07-08 09:43) [11]Гм-м... Нет слов.
← →
Е-Моё имя (2003-07-08 09:45) [12]
> Anatoly Podgoretsky © (08.07.03 08:56)
гыыыы
цыфру наверна? ;))))
← →
ЮЮ (2003-07-08 09:47) [13]я прав, если возможна комбинация типа:
06, 17 -- 8
А если действитедьно надо взять только второй символ , то достаточно SUBSTRING(Field1 FROM 2) AS Field2
← →
sniknik (2003-07-08 11:04) [14]> 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
← →
Anatoly Podgoretsky (2003-07-08 11:20) [15]ЮЮ © (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
← →
kravchuk (2003-07-08 18:33) [16]если поле1 integer можно еще так
select field1,
(field1-cast(field1/10 as integer)*10) as field2
from table1
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c