Whatever message this page gives is out now! Go check it out!
FROM A.B.Products;select_expression = select_expression UNION [ALL] select_expression| UNION SELECT * FROM Table2 |
| UNION Select * from Table2 |
| UNION Select * from Table2 UNION Select * from Table3 ... |
/* First statement. */
SELECT * FROM TableA
UNION ALL
(SELECT * FROM TableB
UNION
SELECT * FROM TableC
)
/* Second statement. */
(SELECT * FROM TableA
UNION ALL
SELECT * FROM TableB
)
UNION
SELECT * FROM TableCcond_test ::= expression [IS [NOT] {TRUE | FALSE | UNKNOWN} ]
WHERE _isValid IS true;null_cond ::= expression IS [NOT] NULLWHERE bloodVal IS NOT null;comparison_cond ::= expression [= | > | >= | <> | != | < | <=] expressionFROM Dogs
WHERE dog_IQ >= 150;between_cond ::= expression [NOT] BETWEEN expression AND expressionFROM Dogs
WHERE dog_IQ BETWEEN 150 AND 165;in_cond ::= expression [NOT] IN (expression_list)FROM Dogs
WHERE kennel_ID IN ('Kens','Barbs');like_cond ::= left_string_exp [NOT] LIKE right_string_exp [ESCAPE escape_char]FROM Dogs
WHERE breed LIKE '%Terrier';SELECT lname FROM Suspects WHERE lname LIKE '[a-m]%';
SELECT lname FROM Suspects WHERE lname LIKE '%[]';
SELECT lname FROM Suspects WHERE lname LIKE 'A[%]%';
SELECT lname FROM Suspects WHERE lname LIKE 'A[^c-f]%';FROM Dogs
WHERE dog_name LIKE 'Sylvester';FROM Dogs
WHERE LOWER(dog_name) LIKE 'sylvester';WHERE LOWER(dog_name) LIKE '#LCase(FORM.SearchString)#';FROM Benefits
WHERE emp_discount LIKE '10\%'
ESCAPE '\';<cfset qInstruments = queryNew("name, instrument, years_playing", "CF_SQL_VARCHAR, CF_SQL_VARCHAR, CF_SQL_INTEGER")><cfset myQuery = QueryNew("")><cfset FastFoodArray = ArrayNew(1)>
<cfset FastFoodArray[1] = "French Fries">
<cfset FastFoodArray[2] = "Hot Dogs">
<cfset FastFoodArray[3] = "Fried Clams">
<cfset FastFoodArray[4] = "Thick Shakes">
<!--- Use the array to add a column to the query. --->
<cfset nColumnNumber = QueryAddColumn(myQuery, "FastFood", "CF_SQL_VARCHAR",
FastFoodArray)>CAST ( expression AS castType )<cfhttp url="http://quote.yahoo.com/download/quotes.csv?Symbols=csco,jnpr&format=sc1l1&ext=.csv"
method="GET"
name="qStockItems"
columns="Symbol,Change,LastTradedPrice"
textqualifier=""""
delimiter=","
firstrowasheaders="no">
<cfoutput>
<cfdump var="#qStockItems#">
<cfdump var="#qStockItems.getColumnNames()#">
</cfoutput>
<cfoutput>
<cfloop index="i" from="1" to="#arrayLen(qStockItems.getColumnNames())#">
#qStockItems.getMetaData().getColumnTypeName(javaCast("int",i))#<br/>
</cfloop>
</cfoutput>
<cftry>
<cfquery name="hello" dbtype="query">
SELECT SUM(CAST(qStockItems.LastTradedPrice as INTEGER))
AS SUMNOW from qStockItems
</cfquery>
<cfcatch>Error in Query of Queries</cfcatch>
</cftry>
<cfoutput>
<cfdump var="#hello#">
</cfoutput>
([ALL | DISTINCT] numeric_exp)FROM Dogs
WHERE breed LIKE '%Terrier';FROM roysched
GROUP BY lorange;FROM roysched
GROUP BY lorange;SELECT (lorange + hirange)/2 AS midrange,
COUNT(*)
FROM roysched
GROUP BY midrange;SELECT (lorange+hirange)/2 AS x,
COUNT(*)
FROM roysched GROUP BY x
HAVING x > 10000;SELECT (lorange + hirange)/2 AS midrange,
COUNT(*)
FROM roysched
GROUP BY (lorange + hirange)/2;/ Empty query
emptyQuery = queryNew("id,name");
// Aggregate query
result = queryExecute(
"SELECT COUNT(id) AS cnt FROM emptyQuery",
{},
{dbtype="query"}
);
// CF2021: result.RowCount = 0
// CF2025: result.RowCount = 1, result.cnt = 0order_by_column ::= ( <IDENTIFIER> | <INTEGER_LITERAL> ) [<ASC> | <DESC>]FROM results
ORDER BY dopamine_levelsFROM results
ORDER BY 2 ASC, 1 DESCfrom Employee;SELECT * FROM employee
</cfquery>
<cfquery name="roysched" datasource="2pubs">
SELECT * FROM roysched
</cfquery>SELECT (job_id || job_lvl)/2 AS job_value
FROM employee
ORDER BY job_value
</cfquery>SELECT lorange || hirange AS x, count(hirange)
FROM roysched
GROUP BY x
</cfquery>SELECT (lorange || hirange)/2 AS x,
COUNT(*)
FROM roysched GROUP BY x
HAVING x > 10000
</cfquery>WHERE NOT (breed > 'A')WHERE breed IS NOT NULL AND not (breed > 'A')LASTNAME || ', ' || FIRSTNAMESELECT [group].firstname FROM [group];
SELECT [group].[from] FROM [group];SELECT [[from]] FROM T;| ABSOLUTE | ACTION | ADD | ALL | ALLOCATE |
| ALTER | AND | ANY | ARE | AS |
| ASC | ASSERTION | AT | AUTHORIZATION | AVG |
| BEGIN | BETWEEN | BIT | BIT_LENGTH | BOTH |
| BY | CASCADE | CASCADED | CASE | CAST |
| CATALOG | CHAR | CHARACTER | CHARACTER_LENGTH | CHAR_LENGTH |
| CHECK | CLOSE | COALESCE | COLLATE | COLLATION |
| COLUMN | COMMIT | CONNECT | CONNECTION | CONSTRAINT |
| CONSTRAINTS | CONTINUE | CONVERT | CORRESPONDING | COUNT |
| CREATE | CROSS | CURRENT | CURRENT_DATE | CURRENT_TIME |
| CURRENT_TIMESTAMP | CURRENT_USER | CURSOR | DATE | DAY |
| DEALLOCATE | DEC | DECIMAL | DECLARE | DEFAULT |
| DEFERRABLE | DEFERRED | DELETE | DESC | DESCRIBE |
| DESCRIPTOR | DIAGNOSTICS | DISCONNECT | DISTINCT | DOMAIN |
| DOUBLE | DROP | ELSE | END | END-EXEC |
| ESCAPE | EXCEPT | EXCEPTION | EXEC | EXECUTE |
| EXISTS | EXTERNAL | EXTRACT | FALSE | FETCH |
| FIRST | FLOAT | FOR | FOREIGN | FOUND |
| FROM | FULL | GET | GLOBAL | GO |
| GOTO | GRANT | GROUP | HAVING | HOUR |
| IDENTITY | IMMEDIATE | IN | INDICATOR | INITIALLY |
| INNER | INPUT | INSENSITIVE | INSERT | INT |
| INTEGER | INTERSECT | INTERVAL | INTO | IS |
| ISOLATION | JOIN | KEY | LANGUAGE | LAST |
| LEADING | LEFT | LEVEL | LIKE | LOCAL |
| LOWER | MATCH | MAX | MIN | MINUTE |
| MODULE | MONTH | NAMES | NATIONAL | NATURAL |
| NCHAR | NEXT | NO | NOT | NULL |
| NULLIF | NUMERIC | OCTET_LENGTH | OF | ON |
| ONLY | OPEN | OPTION | OR | ORDER |
| OUTER | OUTPUT | OVERLAPS | PAD | PARTIAL |
| POSITION | PRECISION | PREPARE | PRESERVE | PRIMARY |
| PRIOR | PRIVILEGES | PROCEDURE | PUBLIC | READ |
| REAL | REFERENCES | RELATIVE | RESTRICT | REVOKE |
| RIGHT | ROLLBACK | ROWS | SCHEMA | SCROLL |
| SECOND | SECTION | SELECT | SESSION | SESSION_USER |
| SET | SMALLINT | SOME | SPACE | |
| SQL | SQLCODE | SQLERROR | SQLSTATE | SUBSTRING |
| SUM | SYSTEM_USER | TABLE | TEMPORARY | THEN |
| TIME | TIMESTAMP | TIMEZONE_HOUR | TIMEZONE_MINUTE | TO |
| TRAILING | TRANSACTION | TRANSLATE | TRANSLATION | TRIM |
| TRUE | UNION | UNIQUE | UNKNOWN | UPDATE |
| UPPER | USAGE | USER | USING | VALUE |
| VALUES | VARCHAR | VARYING | VIEW | WHEN |
| WHENEVER | WHERE | WITH | WORK | WRITE |
| YEAR | ZONE |
<cfscript>
myQuery = queryNew("id,name,amount,revenue","Integer,Varchar,Integer,Integer",
[
{id=1,name="One",amount=15,revenue=35},
{id=2,name="Two",amount=18,revenue=41},
{id=3,name="Three",amount=32,revenue=73}
]);
//writeOutput("The new query is:")
// writeDump(myQuery)
</cfscript>
<!--- qoq --->
<cfquery name="newQoQ" dbtype="query">
select amount&revenue as andColumn
from myQuery
</cfquery>
<cfdump var="#newQoQ#"><cfscript>
myQuery = queryNew("id,name,amount,revenue","Integer,Varchar,Integer,Integer",
[
{id=1,name="One",amount=15,revenue=35},
{id=2,name="Two",amount=18,revenue=41},
{id=3,name="Three",amount=32,revenue=73}
]);
//writeOutput("The new query is:")
// writeDump(myQuery)
</cfscript>
<!--- qoq --->
<cfquery name="newQoQ" dbtype="query">
select amount|revenue as orColumn
from myQuery
</cfquery>
<cfdump var="#newQoQ#">cfscript>
myQuery = queryNew("id,name,amount,revenue","Integer,Varchar,Integer,Integer",
[
{id=1,name="One",amount=15,revenue=35},
{id=2,name="Two",amount=18,revenue=41},
{id=3,name="Three",amount=32,revenue=73}
]);
//writeOutput("The new query is:")
// writeDump(myQuery)
</cfscript>
<!--- qoq --->
<cfquery name="newQoQ" dbtype="query">
select amount^revenue as xorColumn
from myQuery
</cfquery>
<cfdump var="#newQoQ#"><cfscript>
myQuery = queryNew("id,name,amount,revenue","Integer,Varchar,Integer,Integer",
[
{id=1,name="One",amount=15,revenue=35},
{id=2,name="Two",amount=18,revenue=41},
{id=3,name="Three",amount=32,revenue=73}
]);
//writeOutput("The new query is:")
// writeDump(myQuery)
</cfscript>
<!--- qoq --->
<cfquery name="newQoQ" dbtype="query">
select ~revenue as compColumn
from myQuery
</cfquery>
<cfdump var="#newQoQ#"><cfscript>
// left shift
myQuery = queryNew("id,name,amount,revenue","Integer,Varchar,Integer,Integer",
[
{id=1,name="One",amount=15,revenue=35},
{id=2,name="Two",amount=18,revenue=41},
{id=3,name="Three",amount=32,revenue=73}
]); //writeOutput("The new query is:") // writeDump(myQuery)
</cfscript> <!--- qoq --->
<cfquery name="newQoQ" dbtype="query">
select revenue<<1 as slColumn from myQuery
</cfquery>
<cfdump var="#newQoQ#"><cfscript>
// right shift
myQuery = queryNew("id,name,amount,revenue","Integer,Varchar,Integer,Integer",
[
{id=1,name="One",amount=15,revenue=35},
{id=2,name="Two",amount=18,revenue=41},
{id=3,name="Three",amount=32,revenue=73} ]); //writeOutput("The new query is:") // writeDump(myQuery)
</cfscript> <!--- qoq --->
<cfquery name="newQoQ" dbtype="query">
select revenue>>1 as srColumn from myQuery
</cfquery>
<cfdump var="#newQoQ#"><!--- initial query --->
<cfquery name="initialQuery" datasource="art">
SELECT artid, artname, description, price
FROM art
WHERE price > 50000
</cfquery>
<!--- <cfdump var="#initialQuery#" > --->
<cfquery name="queryOfQueries" dbtype="query">
SELECT artid,description, price%9 as newPrice
FROM initialQuery
</cfquery>
<cfdump var="#queryOfQueries#" >SELECT T1.a, b, c, d FROM T1, T2 WHERE T1.a = T2.aQuery of Queries is less efficient for joins in which the predicate contains multiple expressions, for example:a - b - c) were effectively evaluated right‑to‑left, which did not match SQL behavior or user expectations.| Precedence (high → low) | Operator category | Examples |
|---|---|---|
| Highest | Parentheses | ( … ) |
| High | Multiplicative | *, /, % (modulus) |
| Medium | Additive | +, - |
| Medium‑low | Comparison | =, <>, <, >, <=, >= |
| Low | Logical AND | AND |
| Lowest | Logical OR | OR |
<cfset test = queryNew(
"qtyOnHand, qty1, qty2",
"CF_SQL_INTEGER, CF_SQL_INTEGER, CF_SQL_INTEGER"
)>
<cfset queryAddRow(test, 1)>
<cfset querySetCell(test, "qtyOnHand", 96, 1)>
<cfset querySetCell(test, "qty1", 64, 1)>
<cfset querySetCell(test, "qty2", 32, 1)>
<cfquery name="result" dbtype="query">
SELECT qtyOnHand, qty1, qty2,
qtyOnHand - qty1 - qty2 AS qty3
FROM test
</cfquery>
<cfoutput query="result">
#qtyOnHand# #qty1# #qty2# #qty3#
</cfoutput>96 - (64 - 32) = 64
(96 - 64) - 32 = 0
Expected output:96 64 32 0
Because - operators have the same precedence, the expression is evaluated left‑to‑right.<cfset q = queryNew(
"a, b, c",
"CF_SQL_INTEGER, CF_SQL_INTEGER, CF_SQL_INTEGER"
)>
<cfset queryAddRow(q, 1)>
<cfset querySetCell(q, "a", 10, 1)>
<cfset querySetCell(q, "b", 20, 1)>
<cfset querySetCell(q, "c", 5, 1)>
<cfquery name="result" dbtype="query">
SELECT a + b + c AS total
FROM q
</cfquery>
<cfoutput query="result">
#total#
</cfoutput>(10 + 20) + 5 = 35
Expected result:35
Example 3: Mixed addition and subtraction<cfset q = queryNew(
"a, b, c",
"CF_SQL_INTEGER, CF_SQL_INTEGER, CF_SQL_INTEGER"
)>
<cfset queryAddRow(q, 1)>
<cfset querySetCell(q, "a", 10, 1)>
<cfset querySetCell(q, "b", 20, 1)>
<cfset querySetCell(q, "c", 5, 1)>
<cfquery name="result" dbtype="query">
SELECT a - b + c AS result
FROM q
</cfquery>
<cfoutput query="result">
#result#
</cfoutput>+ and - share the same precedence, so the expression is evaluated left‑to‑right:(10 - 20) + 5 = -10 + 5 = -5
Expected result:-5
Example 4: Parentheses (still required to override precedence)Parentheses continue to work as before and always take precedence over default rules:<cfset test = queryNew(
"qtyOnHand, qty1, qty2",
"CF_SQL_INTEGER, CF_SQL_INTEGER, CF_SQL_INTEGER"
)>
<cfset queryAddRow(test, 1)>
<cfset querySetCell(test, "qtyOnHand", 96, 1)>
<cfset querySetCell(test, "qty1", 64, 1)>
<cfset querySetCell(test, "qty2", 32, 1)>
<cfquery name="result" dbtype="query">
SELECT qtyOnHand - (qty1 + qty2) AS qty3
FROM test
</cfquery>
<cfoutput query="result">
#qty3#
</cfoutput>96 - (64 + 32) = 96 - 96 = 0
Expected result:0
Use parentheses to make complex expressions unambiguous and self‑documenting.Example 5: Comparison operators with arithmeticComparison operators have lower precedence than arithmetic operators. Arithmetic expressions on each side of the comparison are evaluated first:<cfset q = queryNew(
"price, discount, threshold",
"CF_SQL_INTEGER, CF_SQL_INTEGER, CF_SQL_INTEGER"
)>
<cfset queryAddRow(q, 3)>
<cfset querySetCell(q, "price", 100, 1)>
<cfset querySetCell(q, "discount", 10, 1)>
<cfset querySetCell(q, "threshold", 80, 1)>
<cfset querySetCell(q, "price", 50, 2)>
<cfset querySetCell(q, "discount", 5, 2)>
<cfset querySetCell(q, "threshold", 80, 2)>
<cfset querySetCell(q, "price", 90, 3)>
<cfset querySetCell(q, "discount", 15, 3)>
<cfset querySetCell(q, "threshold", 80, 3)>
<cfquery name="result" dbtype="query">
SELECT price, discount, threshold
FROM q
WHERE price - discount > threshold
</cfquery>
<cfoutput query="result">
Price: #price#, Discount: #discount#, Net: #price - discount#
</cfoutput>100 - 10 > 80 → 90 > 80 → TRUE50 - 5 > 80 → 45 > 80 → FALSE90 - 15 > 80 → 75 > 80 → FALSEPrice: 100, Discount: 10, Net: 90
Example 6: Logical operators (AND / OR)AND has higher precedence than OR. Within the same operator, evaluation is left‑to‑right.<cfset q = queryNew(
"stock, minStock, maxStock, active",
"CF_SQL_INTEGER, CF_SQL_INTEGER, CF_SQL_INTEGER, CF_SQL_BIT"
)>
<cfset queryAddRow(q, 3)>
<cfset querySetCell(q, "stock", 50, 1)>
<cfset querySetCell(q, "minStock", 10, 1)>
<cfset querySetCell(q, "maxStock", 100, 1)>
<cfset querySetCell(q, "active", 1, 1)>
<cfset querySetCell(q, "stock", 5, 2)>
<cfset querySetCell(q, "minStock", 10, 2)>
<cfset querySetCell(q, "maxStock", 100, 2)>
<cfset querySetCell(q, "active", 1, 2)>
<cfset querySetCell(q, "stock", 80, 3)>
<cfset querySetCell(q, "minStock", 10, 3)>
<cfset querySetCell(q, "maxStock", 100, 3)>
<cfset querySetCell(q, "active", 0, 3)>
<cfquery name="result" dbtype="query">
SELECT stock
FROM q
WHERE stock >= minStock
AND stock <= maxStock
AND active = 1
</cfquery>
<cfoutput query="result">
In-stock and active: #stock#
</cfoutput>50 >= 10 AND 50 <= 100 AND active = 1 → TRUE AND TRUE AND TRUE → TRUE5 >= 10 → FALSE (entire condition is FALSE)active = 1 is FALSE.In-stock and active: 50