Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.48 MB
Время: 0.009 c
14-100924
Михаил_
2003-07-13 22:45
2003.07.31
Помогите выбрать LCD монитор


14-100884
mikhasenko.anton
2003-07-16 08:25
2003.07.31
Где найти компонент DBF?


7-100994
Supermagic
2003-05-21 12:57
2003.07.31
Редактор компоненты


1-100667
Sensor
2003-07-18 04:41
2003.07.31
Edit2.Text минус Edit1.Text


3-100629
paxer
2003-07-10 11:21
2003.07.31
Нужнай дока по Interbase (желат.на русском)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский