Discussions
Categories
- 196.8K All Categories
- 2.2K Data
- 239 Big Data Appliance
- 1.9K Data Science
- 450.3K Databases
- 221.7K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 550 MySQL Community Space
- 478 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3K ORDS, SODA & JSON in the Database
- 544 SQLcl
- 4K SQL Developer Data Modeler
- 187K SQL & PL/SQL
- 21.3K SQL Developer
- 295.9K Development
- 17 Developer Projects
- 138 Programming Languages
- 292.5K Development Tools
- 107 DevOps
- 3.1K QA/Testing
- 646K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 155 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.1K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 18 Java Essentials
- 160 Java 8 Questions
- 86K Java Programming
- 80 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 204 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 439 LiveLabs
- 38 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 171 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 232 Portuguese
How to avoid using UNION?

Hi, I have a table Employees with
employee_name
Age
In apex page I have a page item(p123_page_selector), which is a radio button. Its values are ALL and AGED.
So, when user selects 'ALL', I want to return all data from table employees.
When user selects 'AGED', I want to return all data from employees where age greater than 35.
I wrote query like below.
How to write this query without using 'UNION'?
Best Answers
-
Like this (untested):
select * from employees where :p123_page_selector = 'ALL' or (age > 35 and :p123_page_selector = 'AGED')
Two comments on your select:
UNION forces the removal of duplicates which is not necessary here, UNION ALL is sufficient.
You should not store the age of a person in the database, store the birthdate instead.
-
Hi, @Rob8111
In apex page I have a page item(p123_page_selector), which is a radio button. Its values are ALL and AGED.
If :p123_page_selector will always be either 'ALL' or 'AGED', then you can simplify Cormaco's solution like this:
select * from employees where :p123_page_selector = 'ALL' or age > 35
Answers
-
Like this (untested):
select * from employees where :p123_page_selector = 'ALL' or (age > 35 and :p123_page_selector = 'AGED')
Two comments on your select:
UNION forces the removal of duplicates which is not necessary here, UNION ALL is sufficient.
You should not store the age of a person in the database, store the birthdate instead.
-
Hi, @Rob8111
In apex page I have a page item(p123_page_selector), which is a radio button. Its values are ALL and AGED.
If :p123_page_selector will always be either 'ALL' or 'AGED', then you can simplify Cormaco's solution like this:
select * from employees where :p123_page_selector = 'ALL' or age > 35
-
Hi @cormaco, thanks for your time. It is working as expected.
-
Hi @Frank Kulash, thanks for your time. Your approach is also working.