Ребята помогите написать запрос

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
http://www.sql-ex.ru/
Здесь научишься.
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 в таблице пустое.
В вашем случае нечего не возвращает