Вниз
Скачать: CL | DM;

Выборка одного и того же поля с разными условиями   Найти похожие ветки 

← →
Роман   (2010-08-17 10:25) [0]

Подскажите как наиболее продуктивно вывести(в одной строке) значения поля(1) но с разными условиями-в первом случае где значение поля(2)=1, во втором значение поля(2)=5. Спасибо.


← →
Sergey13 ©   (2010-08-17 10:38) [1]

select поле(1)
from table_name
where поле(2)=1 or поле(2)=5


← →
Роман   (2010-08-17 10:39) [2]

Значение поля(1) должно быть выведено в одной строке как значения двух полей но сразными условиями.В одну строку и со значением =1 и со значением =5


← →
Sergey13 ©   (2010-08-17 10:53) [3]

> [2] Роман   (17.08.10 10:39)

Никто не мешает на клиенте разворачивать результат как заблагорассудится.
Можно и серер БД (если есть) напрягать этим, но правильнее, ИМХО, все таки на клиенте.


← →
Роман   (2010-08-17 11:01) [4]

Никакого клиента нет. Необходимо все сделать на сервере.
Уточняю условие:запрос выбирает из таблицы две строки они отличаются полями f1 и f2 . Мне необходимо вывести в одной строке значения f1 где f2=1 и f1 где f2=5.


← →
Игорь Шевченко ©   (2010-08-17 11:46) [5]

Сервер как всегда Парадокс


← →
12 ©   (2010-08-17 11:51) [6]

select A.One, B.Two
from
(
select поле(1) as One, 1 as JN1
from table_name
where поле(2)=1
)  A
join B on A.JN1 = B.JN2
(
select поле(1) as Two, 1 as JN2
from table_name
поле(2)=5
) B


← →
Игорь Шевченко ©   (2010-08-17 11:54) [7]

нет, не Парадокс

http://sql.ru/forum/actualthread.aspx?tid=782216


← →
Роман   (2010-08-17 11:56) [8]

Связка трех таблиц по джойну   где поле1,поле2 принадлежат одной из трех таблиц получаем две строки в которых поле1=1 в первой строке и поле1=5 во второй строке. Необходимо выводить одну строку где значение поля2 выводиться в этой строке два раза -1раз где поле1=1 и 2раз где поле2=5


← →
Роман   (2010-08-17 11:58) [9]

Делал так как \ 12\ но выполняется долго два прохода по всей таблице(плюс связки)


← →
12 ©   (2010-08-17 12:01) [10]

может как-то так?
select
поле1, поле2,
case
 When поле1=1 then "ничего не понял"
 When поле1=5 then "не понял ничего"  
 Else "а пойдем спасать тех, которые пошли спасать тех, которые пошли спасать тех,которые пошли спасать тех,которые пошли спасать тех,которые не вернулись?"
end as RSL
from


← →
Роман   (2010-08-17 12:44) [11]

select t1.f1,t1.f2,t11.f2
from t1, t2,t3,
\\копии таблиц t1,t2,t3\\t11,t12,t13
where t1.f1=t2.f1
and t2.f2=t3.f2
and f3=1
and t11.f1=t12.f1
and t12.f2=t13.f2
and f3=5
and t1.f1=t11.f1
результат такой: медленно выполняется-подскажите альтернативу
t1.f1,t1.f2,t11.f2


← →
Роман   (2010-08-17 12:53) [12]

select t1.f1,t1.f2,t11.f2
from t1, t2,t3,
\\копии таблиц t1,t2,t3\\t11,t12,t13
where t1.f1=t2.f1
and t2.f2=t3.f2
and t2.f3=1
and t11.f1=t12.f1
and t12.f2=t13.f2
and t12.f3=5
and t1.f1=t11.f1
результат такой:t1.f1,t1.f2,t11.f2
медленно выполняется-подскажите альтернативу


← →
12 ©   (2010-08-17 12:55) [13]


> Роман   (17.08.10 12:44) [11]


> and f3=1
and f3=5

не будет так работать
какая таблица?

1/приведи реальный запрос свой
2/или данные, исходные и желаемые
3/используй join


← →
12 ©   (2010-08-17 12:56) [14]


> Роман   (17.08.10 12:53) [12]

:)

4/ индексы навесить


← →
Sergey13 ©   (2010-08-17 13:28) [15]

> [4] Роман   (17.08.10 11:01)
> Необходимо все сделать на сервере.
Вроде у оракла в последних версиях был какой то оператор типа LIST или что-то вроде этого. Хотя возможно и путаю что-то.

На крайний случай в Оракле помимо SQL еще и PLSQL есть.
А на "чистом" SQL это ИМХО нормально не решается, т.к. ничего не сказано про соответствие значений поля(2) и поля(1). Т.е. поле2=5 может соответсвовать бесчисленной множество вариантов выводимого поля1. Обратного я в условиях вроде не нашел.
Да и условий может быть больше.


← →
Роман   (2010-08-17 14:27) [16]

для каждого  f1 существует только два значения f3 либо 1 либо 5 и два значения f2 которые нужно вывести в одну строку.


← →
Sergey13 ©   (2010-08-17 14:36) [17]

> [16] Роман   (17.08.10 14:27)

Это задачка из тестов каких то или реальная задача?
select min(f1),max(f1)
from t
where f2=1 or f2=5


← →
Роман   (2010-08-17 14:54) [18]

Реальная причем тут мин мах


← →
Sergey13 ©   (2010-08-17 15:24) [19]

> [18] Роман   (17.08.10 14:54)
> причем тут мин мах

Выведет в строку 2 разных значения одного поля.


← →
Роман   (2010-08-17 15:29) [20]

where f2=1 or f2=5

Мне нужно где  f2=1 и f2=5 и то и то


← →
Sergey13 ©   (2010-08-17 15:34) [21]

> [20] Роман   (17.08.10 15:29)

> Мне нужно где  f2=1 и f2=5 и то и то

А у меня что? F2 может быть или 1 или 5. И 1 и 5 поле быть одновременно не может.

Сформулируй задачу еще раз. Нормально, с примерами данных. При этом помни, что никто в глаза твоей реальной задачи не видел.


← →
Германн ©   (2010-08-17 15:34) [22]


> Мне нужно где  f2=1 и f2=5 и то и то

f2 не может одновременно быть равна и 1 и 5.


← →
Dennis I. Komarov ©   (2010-08-17 16:09) [23]


> Роман   (17.08.10 14:54) [18]
> Реальная ...


А можно узнать, на кой такое в реале понадобилось?
О чую я сдесь X,Y,Z...


← →
Роман   (2010-08-17 16:30) [24]

select t1.f1,t1.f2,t11.f2
from t1, t2,t3,
\\копии таблиц t1,t2,t3\\t11,t12,t13
where t1.f1=t2.f1
and t2.f2=t3.f2
and t2.f3=1
and t11.f1=t12.f1
and t12.f2=t13.f2
and t12.f3=5
and t1.f1=t11.f1
результат такой:t1.f1,t1.f2,t11.f2
медленно выполняется-подскажите альтернативу

делаю самообъединение двух виртуальных таблиц где в одной все значения с 1
в другой с 5 что не понятно.........
как мне увеличить производительность запроса можете сказать


← →
Роман   (2010-08-17 16:32) [25]

t1, t2,t3(одно множество)
t11,t12,t13(второе множество)
and t1.f1=t11.f1(объединяю)
как то по другому можно


← →
Плохиш ©   (2010-08-17 20:12) [26]

А я так и не понял, делфи-то тут каким боком?


← →
Германн ©   (2010-08-17 20:25) [27]


> Плохиш ©   (17.08.10 20:12) [26]

Начиналось то все на sql.ru, а уж потом переплыло на ДМ. К вечеру добралось и до Королевства. :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.005 c
2-1281521447
unknow
2010-08-11 14:10
2010.11.14
Как избежать повторного ввода данных в базу?


2-1282025580
zorik
2010-08-17 10:13
2010.11.14
Служба


4-1241257034
AHTOLLlKA
2009-05-02 13:37
2010.11.14
как сохранить ветку реестра???


15-1280868339
Медвежонок Пятачок
2010-08-04 00:45
2010.11.14
php, json_encode


15-1280694604
Юрий
2010-08-02 00:30
2010.11.14
С днем рождения ! 2 августа 2010 понедельник




   Наверх