Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

ну как составить запрос!   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
14-100981
Soft
2003-07-10 11:23
2003.07.31
Пишушие CD-ROM


1-100762
ss300
2003-07-16 12:27
2003.07.31
Tray-глюк


14-100957
Vlad Oshin
2003-06-30 19:48
2003.07.31
Вы верите в определение качеств человека по мимике, поче-


1-100804
Леночка
2003-07-17 09:43
2003.07.31
FastReport


14-100925
Nikolay M.
2003-07-08 10:04
2003.07.31
Самая популярная ветка за историю существования форума - ?