0% found this document useful (0 votes)
239 views

Unit 5 - Invoke Conversion Functions and Conditional Expressions

Here are 3 practice queries to try: 1. Use DATE_FORMAT to display the hire date of all employees in MM/YYYY format. 2. Use COALESCE to display the commission percentage or 'No Commission' for all employees. 3. Use a CASE expression to add a 10% bonus to salaries of employees in the 'IT_PROG' department and a 15% bonus to those in the 'ST_CLERK' department. Let me know if any of these need further explanation! Practicing with different functions and expressions will help strengthen your skills.

Uploaded by

Iulian Neaga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
239 views

Unit 5 - Invoke Conversion Functions and Conditional Expressions

Here are 3 practice queries to try: 1. Use DATE_FORMAT to display the hire date of all employees in MM/YYYY format. 2. Use COALESCE to display the commission percentage or 'No Commission' for all employees. 3. Use a CASE expression to add a 10% bonus to salaries of employees in the 'IT_PROG' department and a 15% bonus to those in the 'ST_CLERK' department. Let me know if any of these need further explanation! Practicing with different functions and expressions will help strengthen your skills.

Uploaded by

Iulian Neaga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Invoke Conversion Functions and Conditional

Expressions
Agenda

• Implicit and explicit data type conversion


• DATE_FORMAT, STR_TO_DATE, CAST functions
• General functions:
• NULLIF
• COALESCE
• Conditional expressions:
• CASE, IF
Conversion Functions

• In some cases, the server receives data of one data type where it
expects data of a different data type; the server can automatically
convert the data to the expected data type. This data type
conversion can be done implicitly by the server or explicitly by the
user.
• Implicit data type conversions work according to the rules
explained in the following slides.
• Explicit data type conversions are performed by using the
conversion functions. Conversion functions convert a value from
one data type to another.
• Although implicit data type conversion is available, it is
recommended that you do the explicit data type conversion
Implicit Data Type Conversion

MySQL server can automatically convert the following:

• VARCHAR or CHAR to NUMBER


• VARCHAR or CHAR to DATE
• NUMBER to VARCHAR or CHAR
• DATE to VARCHAR or CHAR

• CHAR to NUMBER conversions succeed only if the character


string represents a valid number
Explicit Data Type Conversion

SQL provides three functions to convert a value from one data type to
another:
• DATE_FORMAT(date , fmt) - converts a date value to a string with
the format model fmt;
• STR_TO_DATE(char, fmt) - converts a character string
representing a date to a date value according to fmt that is
specified;
• CAST(expression AS TYPE) - converts a value to a specified type.
The target type can be: BINARY, CHAR, DATE, DATETIME, TIME,
DECIMAL, SIGNED, UNSIGNED.
• CONVERT(expression, TYPE) - converts a value into the specified
datatype or character set;
DATE_FORMAT Function
DATE_FORMAT(date,'format_model')

The format model:


• Must be enclosed with single quotation marks
• Is case-sensitive
• Can include any valid date format element
• Is separated from the date value by a comma

SELECT employee_id, DATE_FORMAT(hire_date,‘%M/%Y')


FROM employees
WHERE last_name = 'Higgins';
DATE_FORMAT Function
DATE_FORMAT(date,'format_model')

The format model:


CAST() Function with Numbers

SELECT CAST('-99.357' as DECIMAL(4,2)) SALARY


FROM employees
WHERE last_name = 'Ernst';

• The MySQL server rounds the stored decimal value to the


number of decimal places provided in the format model.
Using the CAST and STR_TO_DATE
• Convert a character string to a number format using the CAST
function:
CAST(char AS TYPE)
• Convert a character string to a date format using the
STR_TO_DATE function:
STR_TO_DATE(char, 'format_model')
• These function has an fix modifier. This modifier specifies the exact
match for the character argument and date format model of a
STR_TO_DATE function:
• punctuation /quoted text in the argument must exactly match
• the character argument cannot have extra blanks.
• numeric data in the character argument must have the same
number of digits as the corresponding element in the format model.
General Functions
• The following functions work with any data type and pertain to
using nulls:

• NULLIF (expr1, expr2) - Compares two expressions and returns


null if they are equal; returns the first expression if they are not
equal.

• COALESCE (expr1, expr2, ..., exprn) - Returns the first non-null


expression in the expression list.
SELECT last_name, salary, COALESCE(commission_pct,
0), 12*salary*(1+COALESCE(commission_pct, 0)) ANSAL
FROM employees;
COALESCE Function

• The advantage of the COALESCE function is that can take multiple


values.

• If the first expression is not null, the COALESCE function returns that
expression; otherwise, it does a COALESCE of the remaining
expressions.
Syntax
COALESCE (expr1, expr2, ... exprn)

SELECT last_name, employee_id,


COALESCE(TO_CHAR(commission_pct),TO_CHAR(manager_id),'N
o commission and no manager')
FROM employees;
Conditional Expressions

• Provide the use of the IF-THEN-ELSE logic within a SQL statement.

• Use two methods:

• CASE expression

• IF expression
CASE Expression
• Facilitates conditional inquiries by doing the work of an IF-THEN-ELSE
statement:

CASE expr
WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END

SELECT last_name, job_id, salary, CASE job_id WHEN


'IT_PROG' THEN 1.10*salary WHEN 'ST_CLERK' THEN
1.15*salary WHEN 'SA_REP' THEN 1.20*salary ELSE salary
END "REVISED_SALARY"
FROM employees;
IF Expression
• Facilitates conditional inquiries by doing the work of a CASE
expression or an IF-THEN-ELSE statement:

IF(cond, val_true,val_false)

SELECT last_name, job_id, salary,


if(job_id='IT_PROG',1.10,1)*
if(job_id='ST_CLERK',1.15,1)*
if(job_id='SA_REP',1.20,1)*salary “REVISED_SALARY”
FROM employees;
Practice 3

This practice covers the following topics:

• Creating queries that use functions

• Creating queries that use conditional expressions

You might also like