Xpoint
   [напомнить пароль]

Запрос с определением столбцов

Метки: [без меток]
2005-05-14 18:28:22 [обр] Дмитрий Терёхин(0/1)[досье]

есть таблица футболистов, в которой столбцы: названия умений (shoot, pass..), и abiltity - какое умение игрок тренирует. например
players
name shoot pass .. ability
Булыкин 10 20 .. shoot
Бекхем 5 10 .. pass

как написать один запрос, который повышает всем игрокам тренируемые умения на 1%?

спустя 32 минуты [обр] GRAy(8/259)[досье]
без динамического sql никак это не сделать не то что одинм запросом, вообще селектом это сделать нельзя.
спустя 5 минут [обр] GRAy(8/259)[досье]
что-то я погорячился ;) вообще-то ;) можно попробовать так
update players
 set shot = decode(ability,"shot", shot*1.01),
   pass = decode(ability,"pass", pass*1.01);
спустя 1 минуту [обр] GRAy(8/259)[досье]
извиняюсь %) небольшая поправка.
update players
 set shot = decode(ability,"shot", shot*1.01, shot),
   pass = decode(ability,"pass", pass*1.01, pass);
спустя 1 день 6 часов [обр] Закиров Руслан(12/343)[досье]
Проще наверное сделать N запросов обновления, где N - количество умений.
спустя 2 месяца 20 дней [обр] Эдуард Суров(0/264)[досье]

Мне кажется, логичнее так:

UPDATE players SET
  shot = IF(ability = 'shot', shot*1.01, shot),
  pass = IF(ability = 'pass', pass*1.01, pass);

DECODE() тут вроде как незачем использовать...

спустя 30 минут [обр] GRAy(8/259)[досье]
Эдуард Суров[досье] decode в Oracle выполняет ту же функцию, что и ваш IF.
Powered by POEM™ Engine Copyright © 2002-2005