Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Oracle Database/Restricting and Sorting Data

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

SELECT *|{[DISTINCT] column|expr [[AS] alias],...} FROM table [WHERE condition(s)] [ORDER BY {column, alias, expr, numeric_position} [ASC|DESC] [NULLS FIRST|NULLS LAST] ]; Limiting the rows that are retrieved by a query Write queries that contain a WHERE clause to limit the output retrieved Character strings and date values are enclosed with single quote Character values are case-sensitive and date values are format-sensitive The default date display format is DD-MON-YY An alias cannot be used in the WHERE clause SELECT last_name, department_id, hire_date FROM hr.employees WHERE department_id = 90; SELECT last_name, department_id, hire_date FROM hr.employees WHERE last_name = 'King'; SELECT last_name, department_id, hire_date FROM hr.employees WHERE hire_date = '30-JAN-96'; List the comparison operators and logical operators that are used in a WHERE clause Operator Meaning = Equal to > Greater than >= Greater than or equal to < Less than <= Less than or equal to <> Not equal to (can also use != or ^=) BETWEEN ... AND ... Between two values (inclusive) IN (set) Match any value in a list LIKE Match a character pattern '%' - zero or many; '_' - one character IS NULL is a null value AND returns TRUE if both conditions are true OR returns TRUE if either condition is true NOT returns TRUE if the condition is false -- must specify the lower limit first SELECT last_name, salary FROM hr.employees WHERE salary BETWEEN 4000 AND 5000; -- can also use on character value SELECT last_name, salary FROM hr.employees WHERE last_name BETWEEN 'Abel' AND 'Bull' ORDER BY last_name; SELECT last_name, salary FROM hr.employees WHERE salary in (4000,6000,8000); -- last name start with 'A' and 2 characters at least SELECT last_name, salary FROM hr.employees WHERE last_name like 'A_%'; -- hire date at year 1999 SELECT last_name, salary, hire_date FROM hr.employees WHERE hire_date like '%99'; -- employee doesn't report to any manager SELECT last_name, salary FROM hr.employees WHERE manager_id is null; -- use AND, OR, NOT operators SELECT last_name, job_id, salary FROM hr.employees WHERE (job_id like 'AD%' OR job_id like 'IT%') AND salary > 5000 AND NOT last_name = 'King'; -- use ESCAPE identifier SELECT last_name, job_id FROM hr.employees WHERE job_id like 'A_\_P%' ESCAPE '\'; Describe the rules of precedence for comparison and logical operators Precedence Operators Description 1 parenthesis Expression within parenthesis always evaluate first 2 /, * Division and Multiplication 3 +, - Addition and subtraction 4 || Concatenation 5 =, <, >, <=, >= Equality and inequality comparison 6 [NOT] LIKE, IS [NOT] NULL, [NOT] IN Pattern, null, and set comparison 7 [NOT] BETWEEN Range comparison 8 <>, !=, ^= Not equal to 9 NOT NOT logical condition 10 AND AND logical condition 11 OR OR logical condition Sorting the rows that are retrieved by a query Write queries that contain an ORDER BY clause sort the output of a SELECT statement * The default sort order is ascending * Null values are displayed last for ascending sequences and first for descending sequence * You can also sort by a column that is not in the SELECT list SELECT employee_id, last_name, salary*12 annsal FROM hr.employees ORDER BY annsal DESC ; Sort output in descending and ascending order SELECT last_name, job_id, salary, commission_pct, salary*commission_pct "Comm" FROM hr.employees ORDER BY commission_pct NULLS FIRST, 2 DESC, salary, "Comm"; Using ampersand substitution to restrict and sort output at runtime Use substitution variables to: Temporarily store values with single-ampersand (&) and double-ampersand (&&) substitution Use substitution variables to supplement the following: WHERE conditions ORDER BY clauses Column expressions Table names Entire SELECT statements --any &column_name after the &&column_name will not prompt for value again SELECT employee_id, last_name, job_id, &&column_name FROM hr.employees ORDER BY &column_name ;