Skip to main content

CONCAT FUNCTION IN SQL SERVER 2012

Concat function is used concatnating the values among the different arguments.

Syntax:
Concat([String1],[String2]..[StringN]); 

DECLARE @FName VARCHAR(50),@LName VARCHAR(50);
SET @FName='Rakesh' ;
SET @LName='Kalluri';
SELECT CONCAT(@FName,' ', @LName) as [FullName];
Output: Rakesh Kalluri

--Before SQL 2012 Versions we can use like this way
DECLARE @FName VARCHAR(50),@LName VARCHAR(50);
SET @FName='Rakesh' ;
SET @LName='Kalluri';
SELECT @FName+' '+@LName as [FullName];
Output: Rakesh Kalluri

--But Before SQL 2012 Versions there are 2 problems when we contacting.
--1.Need to replace NULL Value to Empty.if we directly concat NULL Value the Entire result also NULL.

--Before 2012:
DECLARE @FName VARCHAR(50),@LName VARCHAR(50);
SET @FName='Rakesh' ;
SELECT @FName+' '+@LName as [FullName];
Output: NULL

--From 2012 (Null values are implicitly converted to empty)
DECLARE @FName VARCHAR(50),@LName VARCHAR(50);
SET @FName='Rakesh' ;
SELECT CONCAT(@FName,' ', @LName) as [FullName];
Output: Rakesh

--2.Need to Convert String Datatype

--Before 2012:
DECLARE @FName VARCHAR(50),@Id INT;
SET @FName='Rakesh' ;
SET @Id=1
SELECT @FName+' '+@Id as [Details];
Msg 245, Level 16, State 1, Line 5
Conversion failed when converting the varchar value 'Rakesh ' to data type int.

--Problem Solving Before 2012 Versions
SELECT @FName+' '+CAST(@Id AS VARCHAR(50)) as [Details];
Output: Rakesh 1

--From 2012
DECLARE @FName VARCHAR(50),@Id INT;
SET @FName='Rakesh' ;
SET @Id=1
SELECT CONCAT(@FName,' ', @Id) as [Details];
Output: Rakesh 1


Comments

Popular posts from this blog

SP_MSForeachtable

Some times we need to query on the all the tables in one data base single statement. We use SP_MSForeachtable this is known as undocumented stored procedures . These all are system stored procedures. These stored procedures is place in Master database. NOTE: Please do not run all these queries in Production environment Example: create database UnDocumentedStoredProcedure use UnDocumentedStoredProcedure create table Emp ( ID int identity ( 1 , 1 ), Name varchar ( 50 ), Salary int ) insert into Emp ( Name , Salary ) values ( 'rakesh' , 8000 ),( 'raju' , 9000 ) create table Dept ( ID int identity ( 1 , 1 ), DeptName varchar ( 100 ) ) insert into Dept ( DeptName ) values ( 'CSE' ),( 'IT' ) We are created new database and also created some table with some dummy data. Select all tables data: exec sp_MSForeachtable 'select * from ?...

SET ROWCOUNT

Stop the processing after the number of rows has been affected. Example: Step-1: Create the Table and insert some sample data. CREATE TABLE STUDENT ( ID INT IDENTITY ( 1 , 1 ) PRIMARY KEY , STUDENTNAME VARCHAR ( 100 ) NOT NULL , LIVINGLOCATION VARCHAR ( 100 ) NULL ) INSERT INTO STUDENT ( STUDENTNAME , LIVINGLOCATION ) SELECT 'Rakesh' , 'Hyderabad' UNION ALL SELECT 'Raju' , 'Delhi' UNION ALL SELECT 'Madhu' , 'Hyderabad' UNION ALL SELECT 'Naresh' ,NULL UNION ALL SELECT 'Venaktesh' , 'Chennai' In above Insert Statement we inserted 5 sample records. Step-2: Using SET ROWCOUT SET ROWCOUNT 3 ; SELECT * FROM STUDENT ORDER BY ID DESC It will affected 3 rows after that processing has been stopped. Step-2: Using SET ROWCOUT 0 SET ROWCOUNT 0 ; SELECT * FROM STUDENT ORDER BY ID DESC ...