Ребята помогите написать запрос
Mr.Brown
Дата: 22.10.2015 11:35:51
Ребята помогите написать запрос
select * from table
where name='&name' or name is null
Должен вернуть значения из таблицы, где name равен вводному параметру или же если не равен то должен вернуть только те значение где name пустой(null).
name vote
-------- ---------
A--------5
B--------6
A--------10
null-----11
null-----15
A------- 20
Den89
Дата: 22.10.2015 11:47:00
Mr.Brown
Дата: 22.10.2015 11:48:41
Да, просто если не пользоваться "if" , то как можно запросить?
nvlзю
Дата: 22.10.2015 12:11:49
Mr.Brown,
where name=:name or (nvl(name,'зю')<>:name and name is null)
Mr.Brown
Дата: 22.10.2015 13:04:30
nvlзю,
select * from table s
where s.name=&name or (nvl(&name,'зю')<>s.nameand s.name is null)
не возвращает те значение таблицы, где поле name в таблице пустое
nvlзю
Дата: 22.10.2015 13:07:57
Mr.Brown,
ничего не смущает?
nvl(name,'зю')<>:name vs nvl(&name,'зю')<>s.name
almswiss
Дата: 22.10.2015 13:18:36
nvlзю |
---|
Mr.Brown,
where name=:name or [color=red](nvl(name,'зю')<>:name and name is null)[/color]
|
И зачем весь этот огород?
Все сводится к
where name = :name or :name is null
Mr.Brown
Дата: 22.10.2015 13:18:39
nvlзю,
я пишу в plsql, использую '&name' для ввода значении при execute
Может в чем то ошибаюсь
almswiss
Дата: 22.10.2015 13:20:47
almswiss |
---|
Не параметр, конечно а поле:
where name = :name or name is null
|
Mr.Brown
Дата: 22.10.2015 13:21:51
almswiss |
---|
nvlзю |
---|
Mr.Brown,
where name=:name or [color=red](nvl(name,'зю')<>:name and name is null)[/color]
|
И зачем весь этот огород? Все сводится к
where name = :name or :name is null
|
при вводе несуществующего name должен возвращать те значение где name в таблице пустое.
В вашем случае нечего не возвращает