(1,'A','A','A'), (2,'A','B','C'), (3,'C','A','B'), (4,'A','A','B'),
(5,'B','B','B'), (6,'A','A','B'), (7,'A','A','A'), (8,'C','A','B'),
(9,'C','A','B'), (10,'A','A','B'), (11,'A',NULL,'B'), (12,'A',NULL,'B')
-- DISTINCT
SELECT Col1,Col2,Col3
FROM #Trash
-- DISTINCT
SELECT DISTINCT Col1,Col2,Col3
FROM #Trash
--
DROP TABLE #Trash
( ):
, Employees (.. ID ):
SELECT DISTINCT DepartmentID
FROM Employees
DepartmentID |
, .. 2 ().
, :
SELECT DISTINCT DepartmentID,PositionID
FROM Employees
DepartmentID | PositionID |
4 , .. (DepartmentID, PositionID) .
DDL
, , Employess. DDL, , UPDATE:
--
ALTER TABLE Employees ADD
LastName nvarchar (30), --
FirstName nvarchar (30), --
MiddleName nvarchar (30), --
Salary float, -- -
BonusPercent float --
GO
-- ( )
UPDATE Employees
SET
LastName= N '',FirstName= N '',MiddleName= N '',
Salary=5000,BonusPercent= 50
WHERE ID =1000 -- ..
UPDATE Employees
SET
LastName= N '',FirstName= N '',MiddleName= N '',
Salary=1500,BonusPercent= 15
WHERE ID =1001 -- ..
UPDATE Employees
SET
LastName= N '',FirstName= N '',MiddleName=NULL,
Salary=2500,BonusPercent=NULL
WHERE ID =1002 -- ..
UPDATE Employees
SET
LastName= N '',FirstName= N '',MiddleName=NULL,
Salary=2000,BonusPercent= 30
WHERE ID =1003 -- ..
, :
SELECT *
FROM Employees
ID | Name | LastName | FirstName | MiddleName | Salary | BonusPercent | |
.. | |||||||
.. | |||||||
.. | NULL | NULL | |||||
.. | NULL |
|
|
, , :
SELECT
--
LastName+' '+FirstName+' '+MiddleName AS ,
-- , ..
HireDate AS " ",
-- , ..
Birthday AS [ ],
-- AS
Salary ZP
FROM Employees
ZP | |||
2015-04-08 | 1955-02-19 | ||
2015-04-08 | 1983-12-03 | ||
NULL | 2015-04-08 | 1976-06-07 | |
NULL | 2015-04-08 | 1982-04-17 |
, . , .
, .. 2- (NULL ), LastName+' '+FirstName+' '+MiddleName NULL.
(, ) MS SQL +.
, NULL (, NULL, NULL) NULL.
.
ORACLE || LastName||' '||FirstName||' '||MiddleName. ORACLE , , NULL '' , ORACLE 2- . ORACLE 12c, , ( , ). , .. NULL- MS SQL, ORACLE.
ORACLE , [].
ISNULL, MS SQL CONCAT. 3 :
SELECT
LastName+' '+FirstName+' '+MiddleName FullName1,
-- 2 NULL '' ( ORACLE)
ISNULL (LastName,'')+' '+ ISNULL (FirstName,'')+' '+ ISNULL (MiddleName,'') FullName2,
CONCAT (LastName,' ',FirstName,' ',MiddleName) FullName3
FROM Employees
FullName1 | FullName2 | FullName3 |
NULL | ||
NULL |
MS SQL :
SELECT
' '=HireDate, -- "" [] ''
[ ]=Birthday,
ZP=Salary
FROM Employees
AS , , . , .
, , , '', "" [], , . , '', "" [].
|
|
SQL
+ | (x+y) (+x) |
- | (x-y) (-x) |
* | (x*y) |
/ | (x/y) |
% | (x%y). 15%10 5 |
, . , (a+b)*(x/(y-z)).
, NULL NULL, : 10+NULL, NULL*15/3, 100/NULL NULL. .. . NULL ISNULL, COALESCE:
SELECT
ID, Name,
Salary/100*BonusPercent AS Result1, -- NULL
Salary/100* ISNULL (BonusPercent,0) AS Result2, -- ISNULL
Salary/100* COALESCE (BonusPercent,0) AS Result3 -- COALESCE
FROM Employees
ID | Name | Result1 | Result2 | Result3 |
.. | ||||
.. | ||||
.. | NULL | |||
.. | ||||
.. | NULL | |||
.. | NULL |
COALESCE:
COALESCE (expr1, expr2,..., exprn) - NULL .
:
SELECT COALESCE (f1, f1*f2, f2*f3) val --
FROM (SELECT null f1, 2 f2, 3 f3) q
, DML , . , , , , Google MS SQL , MS SQL MS SQL NULL. , . , MSDN, COALESCE:
MSDN COALESCE CASE
COALESCE CASE. , COALESCE(expression1,...n) CASE:
CASE
WHEN (expression1 IS NOT NULL) THEN expression1
WHEN (expression2 IS NOT NULL) THEN expression2
...
ELSE expressionN
END
, (%). , . , , (ID), .. ID, 2:
SELECT ID,Name
FROM Employees
WHERE ID %2=0 -- 2 0
ID | Name |
.. | |
.. | |
.. |
ORDER BY
ORDER BY .
SELECT
LastName,
FirstName,
Salary
FROM Employees
ORDER BY LastName,FirstName -- 2- ,
LastName | FirstName | Salary |
ORDER BY DESC, :
SELECT LastName,FirstName,Salary
|
|
FROM Employees
ORDER BY --
Salary DESC, -- 1.
LastName, -- 2.
FirstName -- 3.
LastName | FirstName | Salary |
. ASC, , ( , - ).
, ORDER BY , SELECT ( , DISTINCT, ). TOP , , 3- , :
SELECT TOP 3 -- 3
ID,LastName,FirstName
FROM Employees
ORDER BY Salary DESC --
ID | LastName | FirstName |
, , . , , (.. ), ( ), ID ( , ID , , ):
SELECT TOP 3 -- 3
ID,LastName,FirstName
FROM Employees
ORDER BY
Salary DESC, -- 1.
Birthday, -- 2.
ID DESC -- 3. ID
.. , , .. , .
ORDER BY:
SELECT LastName,FirstName
FROM Employees
ORDER BY CONCAT (LastName,' ',FirstName) --
ORDER BY :
SELECT CONCAT (LastName,' ',FirstName) fi
FROM Employees
ORDER BY fi --
DISTINCT, ORDER BY , SELECT. .. DISTINCT , . , :
SELECT DISTINCT
LastName,FirstName,Salary
FROM Employees
ORDER BY ID -- ID , DISTINCT
.. ORDER BY , .
1. ORDER BY , SELECT:
SELECT LastName,FirstName,Salary
FROM Employees
ORDER BY --
|
|
3 DESC, -- 1.
1, -- 2.
2 -- 3.
, .
( ), , * . , -, , , ( ), , , .. , .
, , , , (.. ), , .
, .
2.
MS SQL NULL .
SELECT BonusPercent FROM Employees ORDER BY BonusPercent
DESC