-
Подскажите как наиболее продуктивно вывести(в одной строке) значения поля(1) но с разными условиями-в первом случае где значение поля(2)=1, во втором значение поля(2)=5. Спасибо.
-
select поле(1)
from table_name
where поле(2)=1 or поле(2)=5
-
Значение поля(1) должно быть выведено в одной строке как значения двух полей но сразными условиями.В одну строку и со значением =1 и со значением =5
-
> [2] Роман (17.08.10 10:39)
Никто не мешает на клиенте разворачивать результат как заблагорассудится.
Можно и серер БД (если есть) напрягать этим, но правильнее, ИМХО, все таки на клиенте.
-
Никакого клиента нет. Необходимо все сделать на сервере.
Уточняю условие:запрос выбирает из таблицы две строки они отличаются полями f1 и f2 . Мне необходимо вывести в одной строке значения f1 где f2=1 и f1 где f2=5.
-
Сервер как всегда Парадокс
-
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
-
-
Связка трех таблиц по джойну где поле1,поле2 принадлежат одной из трех таблиц получаем две строки в которых поле1=1 в первой строке и поле1=5 во второй строке. Необходимо выводить одну строку где значение поля2 выводиться в этой строке два раза -1раз где поле1=1 и 2раз где поле2=5
-
Делал так как \ 12\ но выполняется долго два прохода по всей таблице(плюс связки)
-
может как-то так?
select
поле1, поле2,
case
When поле1=1 then 'ничего не понял'
When поле1=5 then 'не понял ничего'
Else 'а пойдем спасать тех, которые пошли спасать тех, которые пошли спасать тех,которые пошли спасать тех,которые пошли спасать тех,которые не вернулись?'
end as RSL
from
-
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
-
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
медленно выполняется-подскажите альтернативу
-
> Роман (17.08.10 12:44) [11]
> and f3=1
and f3=5
не будет так работать
какая таблица?
1/приведи реальный запрос свой
2/или данные, исходные и желаемые
3/используй join
-
> Роман (17.08.10 12:53) [12]
:)
4/ индексы навесить
-
> [4] Роман (17.08.10 11:01)
> Необходимо все сделать на сервере.
Вроде у оракла в последних версиях был какой то оператор типа LIST или что-то вроде этого. Хотя возможно и путаю что-то.
На крайний случай в Оракле помимо SQL еще и PLSQL есть.
А на "чистом" SQL это ИМХО нормально не решается, т.к. ничего не сказано про соответствие значений поля(2) и поля(1). Т.е. поле2=5 может соответсвовать бесчисленной множество вариантов выводимого поля1. Обратного я в условиях вроде не нашел.
Да и условий может быть больше.
-
для каждого f1 существует только два значения f3 либо 1 либо 5 и два значения f2 которые нужно вывести в одну строку.
-
> [16] Роман (17.08.10 14:27)
Это задачка из тестов каких то или реальная задача?
select min(f1),max(f1)
from t
where f2=1 or f2=5
-
Реальная причем тут мин мах
-
> [18] Роман (17.08.10 14:54)
> причем тут мин мах
Выведет в строку 2 разных значения одного поля.
-
where f2=1 or f2=5
Мне нужно где f2=1 и f2=5 и то и то
-
> [20] Роман (17.08.10 15:29)
> Мне нужно где f2=1 и f2=5 и то и то
А у меня что? F2 может быть или 1 или 5. И 1 и 5 поле быть одновременно не может.
Сформулируй задачу еще раз. Нормально, с примерами данных. При этом помни, что никто в глаза твоей реальной задачи не видел.
-
> Мне нужно где f2=1 и f2=5 и то и то
f2 не может одновременно быть равна и 1 и 5.
-
> Роман (17.08.10 14:54) [18]
> Реальная ...
А можно узнать, на кой такое в реале понадобилось?
О чую я сдесь X,Y,Z...
-
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 что не понятно.........
как мне увеличить производительность запроса можете сказать
-
t1, t2,t3(одно множество)
t11,t12,t13(второе множество)
and t1.f1=t11.f1(объединяю)
как то по другому можно
-
А я так и не понял, делфи-то тут каким боком?
-
> Плохиш © (17.08.10 20:12) [26]
Начиналось то все на sql.ru, а уж потом переплыло на ДМ. К вечеру добралось и до Королевства. :)