Functions for Expressions

Visual Database Tools

Visual Database Tools

Functions for Expressions

You can call a number of functions when you are building an expression, including:

  • String (character) functions

  • Date functions

  • Mathematical functions

  • System functions

  • Other functions, such as those to convert data from one type to another

  • User-defined functions

For more information, see Functions.

If you are creating queries (not views, stored procedures, or triggers) that might be run against different databases, you can also use ODBC functions. ODBC syntax includes the "fn" qualifier in front of the function name and braces around the entire function. For example, the following expression uses an ODBC function to convert text to lowercase letters:

{fn LCASE ( address ) }

The Query Designer can help you work with functions by:

  • Correctly inserting quotation marks in function arguments

  • Validating the data types of arguments

  • Validating the data types of return values

For information on ODBC, see the Data Access Services section of the MSDN® Online Library Microsoft Web site. For more information on functions, see User-Defined Functions.

Note   You can use a special set of functions, the aggregate functions such as SUM( ) and AVG( ), to create queries that summarize data. For details, see Summarizing and Grouping.

String Functions

The following table contains samples of string functions.  For more information, see String Functions and Using String Functions.

Function Description Example
LCASE( )1,
LOWER( )
Converts strings to lowercase
SELECT UPPER(substring(lname, 1, 1)) + 
  LOWER(substring (lname, 2, 99))
FROM employee

Displays a last name after the first character is converted to uppercase and the remaining characters to lowercase.

LTRIM( ) Removes leading spaces from a string
SELECT stor_name, LTRIM(stor_address)
FROM stores

Displays an address column after extraneous spaces are removed from the front.

SUBSTRING( ) Extracts one or more characters from a string
SELECT SUBSTRING(phone,1,3)
FROM employee

Displays the first three characters (the area code) of a phone number.

UCASE( )1,
UPPER( )
Converts strings to uppercase
SELECT * FROM employee
WHERE UPPER(lname) = 'SMITH'

Converts the contents of the lname column to uppercase before comparing them to a specific value (avoids mismatches if the search is case sensitive). For details about case sensitivity in SQL Server, see Query Designer Considerations .


1    If calling as an ODBC function, use syntax such as: { fn LCASE(text) }.

Date Functions

The following table contains samples of date functions.  For more information, see Date and Time Functions.

Function Description Example
DATEDIFF( ) Calculates an interval between two dates.
SELECT fname, lname, hire_date
FROM employee
WHERE DATEDIFF(year, hire_date, getdate()) > 5

Locates all employees hired more than five years ago.

DATEPART( ) Returns the specified portion of a date or datetime column, including the day, month, or year.
SELECT DATEPART(year, hire_date)
FROM employee

Displays only the year in which an employee was hired (not the full date).

CURDATE( )1,
GETDATE( )
or DATE( )
Returns the current date in datetime format. This function is useful as input for many other date functions, such as calculating an interval forward or backward from today.
SELECT order_id
FROM orders
WHERE order_date = GETDATE()
Displays orders placed today.

1    If calling as an ODBC function, use syntax such as: { fn CURDATE() }.

Mathematical Functions

The following functions are typical of those available in many databases.  Refer to Mathematical Functions for more information.

Note   You can use the aggregate functions AVG( ), COUNT( ), MAX( ), MIN( ), and SUM( ) to create averages and totals in your report. For details, see Summarizing and Grouping.

Function Description Example
ROUND( ) Rounds a number off to the specified number of decimal places
SELECT ROUND(qty * (price * discount), 2)
FROM sales

Displays a total price based on a discount, then rounds the results off to two decimal places.

FLOOR( ) Rounds a number down to the nearest (smallest) whole number
UPDATE titles
SET price = FLOOR(price)

Rounds all prices in the titles table down to the nearest whole number.

CEILING( ) Rounds a number up to the nearest whole number
INSERT INTO archivetitle
SELECT title, CEILING(price)
FROM titles

Copies the title and the price (rounded up to the nearest integer) from the titles table to the archivetitle table.


System Functions

The following functions are typical of those available in many databases.  For more information, see System Functions.

Function Description Example
DATALENGTH( ) Returns the number of bytes used by the specified expression
SELECT DATALENGTH(au_lname + ', ' 
  + au_fname)
FROM authors

Lists the number of bytes required for the combination of last and first names.

USER( )1,
USER_NAME( )
Returns the current user name
SELECT company_name, city, phone
FROM customers
WHERE salesperson = USER_NAME()

Creates a list of customers for the salesperson who runs the query.


1    If calling as an ODBC function, use syntax such as: { fn USER() }.

Other Functions

The following functions illustrate utility functions available in many databases.  For more information, see Functions.

Function Description Example
CONVERT( ) Converts data from one data type into another. Useful to format data or to use the contents of a data column as an argument in a function that requires a different data type.
SELECT 'Hired: ' + CONVERT(char (11),
  hire_date)
FROM employee

Displays a date with a caption in front of it; the CONVERT( ) function creates a string out of the date so that it can be concatenated with a literal string.

SOUNDEX( ) Returns the Soundex code for the specified expression, which you can use to create "sounds like" searches.
SELECT au_lname, au_fname
FROM authors
WHERE SOUNDEX(au_fname) = 'M240'

Searches for names that sound like "Michael".

STR( ) Converts numeric data into a character string so you can manipulate it with text operators.
SELECT str(job_id) + ' ' + 
   str(job_lvl)
FROM employee

Displays the job_id and job_lvl columns (both numeric) in a single string.


See Also

Reference