Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / условие в запросе / 12 сообщений из 12, страница 1 из 1
11.06.2018, 09:57
    #39659388
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
Добрый день, подскажите как прописать условия в sql
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select a.id, d.depnum, d.depname, d.settlementname, c.valuecode, c.iso, a.ratedate, a.buyrate, a.sellrate, a.Curr2,
                       a.count1,a.count2
              from lexratesdep a, codesref c, ments d,valuecodesref c2, command c1
             where a.Curr1 = c.valuecode
               and a.Curr2 = c2.valuecode
               and a.commandid = c1.commandid
               and c2.valuekindid = 0
               and c.valuekindid = 0
               and d.id = e.id               
               and a.CType1 = 0
               and a.CType2 = 0
               and a.isactual = 1
               and (nvl(c1.iscontractual, 0) = 0)
             order by a.id


если
Код: plsql
1.
c1.users ='rent'

тогда выполнять эту строчку
Код: plsql
1.
and (nvl(c1.iscontractual, 0) = 0)
...
Рейтинг: 0 / 0
11.06.2018, 10:08
    #39659393
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
Код: plsql
1.
(c1.users <> 'rent' or c1.users is null or nvl(c1.iscontractual, 0) = 0)
...
Рейтинг: 0 / 0
11.06.2018, 10:16
    #39659395
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
спасибо, но почему <> ? если нужно проверять чтобы пользователь был 'rent'
...
Рейтинг: 0 / 0
11.06.2018, 10:19
    #39659397
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
elimpionно почему <> ? если нужно проверять чтобы пользователь был 'rent'
Код: plaintext
Есть 10 типов людей: которые понимают двоичную арифметику и которые нет.
...
Рейтинг: 0 / 0
11.06.2018, 10:24
    #39659398
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
Elic, ну а все же почему?
...
Рейтинг: 0 / 0
11.06.2018, 10:35
    #39659403
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
elimpionElic, ну а все же почему?Включи мозг. Не поможет - составь таблицу истинности для различных сочетаний характерных значений users и iscontractual.
...
Рейтинг: 0 / 0
13.06.2018, 17:47
    #39660429
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
Elic
Код: plsql
1.
c1.users <> 'rent' or c1.users is null

Код: plsql
1.
lnnvl(c1.usr = 'rent')
...
Рейтинг: 0 / 0
13.06.2018, 17:49
    #39660431
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
AmKad
Код: plsql
1.
lnnvl

А я за сопровождаемость.
...
Рейтинг: 0 / 0
13.06.2018, 20:13
    #39660490
jrqq4-h7h2v
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
Код: sql
1.
2.
3.
4.
and nvl(c1.iscontractual, 0) = case c1.users
                                           when 'rent' then 0
                                           else nvl(c1.iscontractual, 0)
                                         end
...
Рейтинг: 0 / 0
13.06.2018, 20:33
    #39660497
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
Не даст использовать индех. A вот c1.users <> 'rent' or c1.users is null даст (при определенных условиях):

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
SQL> create index emp_idx9 on emp(comm,sal,empno);

Index created.

SQL> explain plan for
  2  select comm,sal from emp where comm <> 0 or comm is null or nvl(sal,0) = 0
  3  /

Explained.

SQL> select * from table(dbms_xplan.display);

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 3905226963

-----------------------------------------------------------------------------
| Id  | Operation        | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | SELECT STATEMENT |          |    11 |    66 |     1   (0)| 00:00:01 |
|*  1 |  INDEX FULL SCAN | EMP_IDX9 |    11 |    66 |     1   (0)| 00:00:01 |
-----------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("COMM" IS NULL OR "COMM"<>0 OR NVL("SAL",0)=0)

13 rows selected.

SQL> 



SY.
...
Рейтинг: 0 / 0
14.06.2018, 08:46
    #39660597
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
SY,

мож у elimpion c1.users NOT NULL

.....
stax
...
Рейтинг: 0 / 0
14.06.2018, 09:14
    #39660603
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
условие в запросе
Staxмож у elimpion c1.users NOT NULLКашу маслом не испортишь.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / условие в запросе / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]