Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сдвиг полей при выборке 
V
    Опции темы
Icaros
  Дата 18.11.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 26.5.2006

Репутация: нет
Всего: нет



Добрый день.

Подскажите, пожалуйста.
Есть таблица:

|  s1  |  s2  |  s3  |
 ------  ------ ------
| null | null |  1    |
| null | null |  2    |
| null | 10   |  20 |
| 100 | 10  |  20  |
...

Поля s1, s2, s3 имеют тип int, могут принимать значение null.

Можно ли каким либо способом выбрать записи таким образом, чтобы значения полей сдвигались влево, т.е.

|  s1 |  s2   |  s3   |
-----------------------
|  1   | null  | null  |
|  2   | null  | null  |
| 10  |  20  | null  |
| 100|  10  | 20   | 

(затем нужно будет еще отсортировать по s1, s2, s3) ?

PM MAIL   Вверх
sir_nuf_nuf
Дата 19.11.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 8
Всего: 31



Icaros, в том виде как вы это нарисовали - нет.
Полую s3 - всегда будут соответвовать его данные, т.е. 1, 2, 20, 20.  Это основа баз данных.

Однако  поменять порядок столбцов в таблице можно.
Достаточно просто писать не
Код

select s1, s2, s3...

а 
Код

select s3, s2, s1 ...



--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
sTa1kEr
Дата 19.11.2009, 19:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 7
Всего: 146



Код

SELECT
   IF(s1 IS NULL, IFNULL(s2, s3), s1) AS s1,
   IF(s1 IS NULL, IF(s2 IS NULL, NULL, s3), IFNULL(s2, s3)) AS s2,
   IF(s1 IS NULL, NULL, IF(s2 IS NULL, NULL, s3)) AS s3
FROM tbl
ORDER BY s1, s2, s3

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.