Search This Blog

Thursday, March 21, 2013

Modulo operator SQL Server

SQL Server > Operators > Modulo

Modulo operator (%)
Returns the remainder of one number divided by another


Example:

SELECT 39 % 7 AS Remainder

Result:
4





DATALENGTH SQL Server

SQL Server > Built-In Functions > DATALENGTH

Returns the number of bytes used to represent any expression
Example:

IF EXISTS(SELECT name FROM sys.tables
      WHERE name = 'test')
   DROP TABLE test;
GO

CREATE TABLE test
(
 c1 varchar(5),
 c2 char(5),
 c3 nvarchar(5)
);
GO

INSERT INTO test VALUES ('1', '1','1'), ('22', '22', '22'),('333', '333', '333');
GO
SELECT 
    DATALENGTH(c1) AS 'Varchar Column',
    DATALENGTH(c2) AS 'Char Column',
    DATALENGTH(c3) AS 'NVarChar Column'
FROM
    test;
GO

Result:

Varchar Column      Char Column  NVarChar Column
1                   5             2
2                   5             4
3                   5             6





Replicate SQL Server

SQL Server > Built-In Functions > REPLICATE

Repeats a string with specified number of times.





Example:

SELECT REPLICATE ('a',5)

Result:
aaaaa




STUFF function SQL Server

SQL Server > Built-in Functions > STUFF

STUFF inserts a string into another string
STUFF ( expression , start , length , replaceWith )

Example:
 
SELECT STUFF('abcdef', 1, 2, 'hg');

Result:
hgcdef

Wednesday, March 20, 2013

EXCEPT and INTERSECT SQL Server

SQL Server > Operators > EXCEPT AND INTERSECT

EXCEPT returns any distinct rows from the left query that are not also found on the right query.
INTERSECT returns any distinct rows that are returned by both the query on the left and right.

Example

 create table #t(name varchar(50))
insert into #t(name) values ('1')
insert into #t(name) values ('2')
insert into #t(name) values ('3')

create table #t1(name varchar(50))
insert into #t1(name) values ('1')
insert into #t1(name) values ('2')
insert into #t1(name) values ('5')

select * from #t
except
select * from #t1

--Result:
--name
--3

select * from #t
intersect
select * from #t1

--Result:
--name
--1
--2

drop table  #t
drop table  #t1





Union SQL Server

SQL Server > Operators > Union

Union combines the results of queries into a single result set.

The number of the columns must be the same in all queries.
The data types must be compatible.

All incorporates all rows into the results and includes duplicates. If not specified, duplicate rows are removed.

Example

create table #t(name varchar(50))
insert into #t(name) values ('1')
insert into #t(name) values ('2')
insert into #t(name) values ('3')

create table #t1(name varchar(50))
insert into #t1(name) values ('1')
insert into #t1(name) values ('4')
insert into #t1(name) values ('5')

select * from #t
union
select * from #t1

Result:
name
1
2
3
4
5

select * from #t
union all

select * from #t1

Result:
name
1
2
3
1
4
5

 





How to format datetime and date in Sql Server

SQL Server > Built-in Functions CONVERT

Examples to display date/time data in different formats.

SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:miAM (or PM)
SELECT convert(varchar, getdate(), 101) -- mm/dd/yy
SELECT convert(varchar, getdate(), 102) -- yy.mm.dd
SELECT convert(varchar, getdate(), 103) -- dd/mm/yy
SELECT convert(varchar, getdate(), 104) -- dd.mm.yyyy
SELECT convert(varchar, getdate(), 105) -- dd-mm-yyyy
SELECT convert(varchar, getdate(), 106) -- dd mon yyyy
SELECT convert(varchar, getdate(), 107) -- mon dd, yyyy
SELECT convert(varchar, getdate(), 108) -- hh:mm:ss
SELECT convert(varchar, getdate(), 109) -- mon dd yyyy hh:mm:ss:mmmAM (or PM)
SELECT convert(varchar, getdate(), 110) -- mm-dd-yyyy
SELECT convert(varchar, getdate(), 111) -- yyyy/mm/dd
SELECT convert(varchar, getdate(), 112) -- yyyymmdd
SELECT convert(varchar, getdate(), 113) -- dd mon yyyy hh:mm:ss:mmm
SELECT convert(varchar, getdate(), 114) -- hh:mm:ss:mmm
SELECT convert(varchar, getdate(), 120) -- yyyy-mm-dd hh:mm:ss
SELECT convert(varchar, getdate(), 121) -- yyyy-mm-dd hh:mm:ss.mmm
SELECT convert(varchar, getdate(), 126) -- yyyy-mm-ddThh:mm:ss.mmm