T-SQL Operators
Operators are special symbols or keywords that specify the type of computation or operation to be performed. T-SQL supports a wide range of operators for various purposes, including arithmetic, comparison, logical operations, and more.
Arithmetic Operators
-
+
Addition: Adds two expressions.
SELECT 10 + 5; -- Result: 15 -
-
Subtraction: Subtracts the second expression from the first.
SELECT 10 - 5; -- Result: 5 -
*
Multiplication: Multiplies two expressions.
SELECT 10 * 5; -- Result: 50 -
/
Division: Divides the first expression by the second.
SELECT 10 / 5; -- Result: 2 -
%
Modulo: Returns the remainder of an integer division.
SELECT 10 % 3; -- Result: 1
Comparison Operators
-
=
Equal to: Checks if two expressions are equal.
SELECT * FROM Products WHERE Price = 19.99; -
>
Greater than: Checks if the first expression is greater than the second.
SELECT * FROM Orders WHERE OrderDate > '2023-01-01'; -
<
Less than: Checks if the first expression is less than the second.
SELECT * FROM Employees WHERE Salary < 50000; -
>=
Greater than or equal to: Checks if the first expression is greater than or equal to the second.
SELECT * FROM Inventory WHERE Quantity >= 100; -
<=
Less than or equal to: Checks if the first expression is less than or equal to the second.
SELECT * FROM Students WHERE Grade <= 70; -
<>
Not equal to: Checks if two expressions are not equal.
SELECT * FROM Customers WHERE Country <> 'USA'; -
!=
Not equal to: Alternative syntax for not equal.
SELECT * FROM Customers WHERE Country != 'USA'; -
LIKE
LIKE: Pattern matching.
SELECT * FROM Employees WHERE LastName LIKE 'S%'; -- Finds employees whose last name starts with S -
IN
IN: Checks if a value is in a list of values.
SELECT * FROM Products WHERE CategoryID IN (1, 3, 5); -
BETWEEN
BETWEEN: Checks if a value is within a range.
SELECT * FROM Orders WHERE OrderDate BETWEEN '2023-01-01' AND '2023-12-31'; -
IS NULL
IS NULL: Checks if a value is NULL.
SELECT * FROM Customers WHERE Email IS NULL; -
IS NOT NULL
IS NOT NULL: Checks if a value is not NULL.
SELECT * FROM Products WHERE Description IS NOT NULL;
Logical Operators
-
AND: Combines two conditions; both must be true.
SELECT * FROM Products WHERE Price > 50 AND Category = 'Electronics'; -
OR: Combines two conditions; at least one must be true.
SELECT * FROM Employees WHERE Department = 'Sales' OR Department = 'Marketing'; -
NOT: Reverses the logical state of its operand.
SELECT * FROM Customers WHERE NOT Country = 'Canada'; -
ALL: Compares a value to all values in a subquery or list.
SELECT * FROM Products WHERE Price > ALL (SELECT Price FROM CompetitorProducts); -
ANY: Compares a value to any value in a subquery or list.
SELECT * FROM Orders WHERE OrderID = ANY (SELECT OrderID FROM ShippedOrders); -
EXISTS: Checks for the existence of rows in a subquery.
SELECT * FROM Customers WHERE EXISTS (SELECT 1 FROM Orders WHERE Orders.CustomerID = Customers.CustomerID); -
UNIQUE: Checks if all rows in a subquery are unique.
SELECT * FROM Orders WHERE UNIQUE (SELECT OrderID FROM OrderDetails WHERE OrderDetails.OrderID = Orders.OrderID);
Bitwise Operators
- & Bitwise AND: Performs a bitwise AND operation.
- | Bitwise OR: Performs a bitwise OR operation.
- ^ Bitwise XOR: Performs a bitwise XOR operation.
- ~ Bitwise NOT: Performs a bitwise NOT operation.
- << Bitwise LEFT SHIFT: Shifts bits to the left.
- >> Bitwise RIGHT SHIFT: Shifts bits to the right.
Assignment Operators
-
=
Assignment: Assigns a value to a variable.
DECLARE @Counter INT = 0;
String Concatenation Operators
-
+
Concatenation: Joins two or more strings.
SELECT 'SQL' + ' Server'; -- Result: 'SQL Server' -
||
Concatenation (ANSI SQL Standard): Joins two or more strings. Note: Behavior may vary depending on SQL Server settings.
SELECT 'T' || 'SQL'; -- Result: 'TSQL' (if configured)
Understanding and correctly using these operators is fundamental to writing effective T-SQL queries and manipulating data in SQL Server.