Labels

admin (1) aix (1) alert (1) always-on (2) Architecture (1) aws (3) Azure (1) backup (3) BI-DWH (10) Binary (3) Boolean (1) C# (1) cache (1) casting (3) cdc (1) certificate (1) checks (1) cloud (3) cluster (1) cmd (7) collation (1) columns (1) compilation (1) configurations (7) Connection-String (2) connections (6) constraint (6) copypaste (2) cpu (2) csv (3) CTE (1) data-types (1) datetime (23) db (547) DB2 (1) deadlock (2) Denali (7) device (6) dotNet (5) dynamicSQL (11) email (5) encoding (1) encryption (4) errors (124) excel (1) ExecutionPlan (10) extended events (1) files (7) FIPS (1) foreign key (1) fragmentation (1) functions (1) GCP (2) gMSA (2) google (2) HADR (1) hashing (3) in-memory (1) index (3) indexedViews (2) insert (3) install (10) IO (1) isql (6) javascript (1) jobs (11) join (2) LDAP (2) LinkedServers (8) Linux (15) log (6) login (1) maintenance (3) mariadb (1) memory (4) merge (3) monitoring (4) MSA (2) mssql (444) mssql2005 (5) mssql2008R2 (20) mssql2012 (2) mysql (36) MySQL Shell (5) network (1) NoSQL (1) null (2) numeric (9) object-oriented (1) offline (1) openssl (1) Operating System (4) oracle (7) ORDBMS (1) ordering (2) Outer Apply (1) Outlook (1) page (1) parameters (2) partition (1) password (1) Performance (103) permissions (10) pivot (3) PLE (1) port (4) PostgreSQL (14) profiler (1) RDS (3) read (1) Replication (12) restore (4) root (1) RPO (1) RTO (1) SAP ASE (48) SAP RS (20) SCC (4) scema (1) script (8) security (10) segment (1) server (1) service broker (2) services (4) settings (75) SQL (74) SSAS (1) SSIS (19) SSL (8) SSMS (4) SSRS (6) storage (1) String (35) sybase (57) telnet (2) tempdb (1) Theory (2) tips (120) tools (3) training (1) transaction (6) trigger (2) Tuple (2) TVP (1) unix (8) users (3) vb.net (4) versioning (1) windows (14) xml (10) XSD (1) zip (1)
Showing posts with label mssql2005. Show all posts
Showing posts with label mssql2005. Show all posts

Get UTC datetime in MSSQL

-- UTC datetime:
SELECT GETUTCDATE()
-- UTC datetime (long datetime, like SYSDATETIME):
SELECT SYSUTCDATETIME()

Note: in order to get the time zone offset:

Delete multiple objects in one statement

DROP TABLE StamTableItai1, StamTableItai2
GO

DROP PROCEDURE SP1,SP2
GO

DROP FUNCTION F1,F2
GO

Delete Duplicate Rows (using CTE)

We can Create a CTE on a table, and add to the table more 'columns', and when CTE is created - DELETE statement can be run on it.
When DELETE command is executed over CTE it in fact deletes from the base table used in CTE.


CREATE TABLE DuplicateRcordTable (Col1 INT, Col2 INT)
GO

INSERT INTO DuplicateRcordTable
VALUES
(1,1),
(1,1), --duplicate
(1,1), --duplicate
(1,2),
(1,2), --duplicate
(1,3),
(1,4)
GO

SELECT * FROM DuplicateRcordTable
GO

WITH CTE (COl1,Col2, DuplicateCount)
AS
(
SELECT COl1,Col2,
ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount
FROM DuplicateRcordTable
)
DELETE
FROM CTE
WHERE DuplicateCount > 1
GO

SELECT * FROM DuplicateRcordTable
GO

DROP TABLE DuplicateRcordTable
GO

-------------------------------------------
-- Another example:

CREATE TABLE DuplicateRcordTable (Col1 INT, Col2 INT, Col3 INT)
GO

INSERT INTO DuplicateRcordTable
VALUES
(1,1,5),
(1,1,4), --duplicate
(1,1,1), --duplicate
(1,2,1),
(1,2,5), --duplicate
(1,3,4),
(1,4,1)
GO


SELECT * FROM DuplicateRcordTable
GO

WITH CTE (COl1,Col2, DuplicateCount)
AS
(
SELECT COl1,Col2,
ROW_NUMBER() OVER(PARTITION BY COl1,Col2 ORDER BY Col1) AS DuplicateCount
FROM DuplicateRcordTable
)
DELETE
FROM CTE
WHERE DuplicateCount > 1
GO

SELECT * FROM DuplicateRcordTable
GO

DROP TABLE DuplicateRcordTable
GO

PIVOT

PIVOT rotates a table-valued expression by turning the unique values from one column in the expression into multiple columns in the output.


SELECT 'AverageCost' AS Cost_Sorted_By_Production_Days, 
[0], [1], [2], [3], [4]
FROM
(SELECT DaysToManufacture, StandardCost 
    FROM Production.Product) SourceTable
PIVOT
(
AVG(StandardCost)
FOR DaysToManufacture IN ([0], [1], [2], [3], [4])
) PivotTable

Notes:
  • Available from SQL Server 2005.
  • When aggregate functions are used with PIVOT, the presence of any null values in the value column are not considered when computing an aggregation.
  • Pivot columns are specific values from the column of the source table, and can't be declared dynamic.