In this Article, we will see about most
frequently used string functions in SQL SERVER with working examples.
Explanations and outputs are given in comment style.
The following SQL Query's and Outputs are had written and Executed with SQL
Server 2008 R2.
/*
--------------------------------------------------------
1) ASCII - RETURN ASCII VALUE OF THE GIVEN CHARACTER
SYNTAX:
ASCII('CHARACTER_EXPRESSION')
WHERE
'CHARACTER_EXPRESSION' - CHAR OR VARCHAR VALUE
--------------------------------------------------------
*/
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @POSITION INT, @STRING CHAR(15)
SET @POSITION = 1
SET @STRING = 'PRABHU'
WHILE @POSITION <= DATALENGTH(@STRING) /* GET TOTAL COUNT OF THE STRING */
BEGIN
IF SUBSTRING(@STRING,@POSITION,1) <> ' ' /* GET CHAR IN GIVEN POSITION */
BEGIN
PRINT CAST(@POSITION AS NVARCHAR)+N')'
+ N'ASCII VALUE FOR '
+ CHAR(ASCII(SUBSTRING(@STRING,@POSITION,1)))+N' IS '
+ CAST(ASCII(SUBSTRING(@STRING,@POSITION,1))AS NVARCHAR) /* WILL RETURN ASCII CODE FOR GIVEN CHARACTER */
END
SET @POSITION = @POSITION + 1 /* INCREMENT POSITION BY 1 FOR EVERY ITERATION */
END
SET NOCOUNT OFF
GO
/*
--------------------------------------------------------
OUTPUT IS:
--------------------------------------------------------
1)ASCII VALUE FOR P IS 80
2)ASCII VALUE FOR R IS 82
3)ASCII VALUE FOR A IS 65
4)ASCII VALUE FOR B IS 66
5)ASCII VALUE FOR H IS 72
6)ASCII VALUE FOR U IS 85
--------------------------------------------------------
*/
/*
--------------------------------------------------------
2) CHAR - RETURN CHARACTER FOR THE GIVEN ASCII CODE
SYNTAX:
CHAR(INTEGER_EXPRESSION)
WHERE
INTEGER_EXPRESSION - INTEGER VALUE FROM 0 TO 255. OUT OF THIS, WILL RETURN NULL VALUE.
--------------------------------------------------------
*/
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @POSITION INT, @STRING CHAR(15)
SET @POSITION = 1
SET @STRING = 'PRABHU'
WHILE @POSITION <= DATALENGTH(@STRING) /* GET TOTAL COUNT OF THE STRING */
BEGIN
IF SUBSTRING(@STRING,@POSITION,1) <> ' ' /* GET CHAR IN GIVEN POSITION */
BEGIN
PRINT CAST(@POSITION AS NVARCHAR)+N')'
+ N'ASCII VALUE FOR '
+ CHAR(ASCII(SUBSTRING(@STRING,@POSITION,1)))+N' IS '/* WILL RETURN CHARACTER FOR GIVEN ASCII CODE */
+ CAST(ASCII(SUBSTRING(@STRING,@POSITION,1))AS NVARCHAR)/* WILL RETURN ASCII CODE FOR GIVEN CHARACTER */
END
SET @POSITION = @POSITION + 1 /* INCREMENT POSITION BY 1 FOR EVERY ITERATION */
END
SET NOCOUNT OFF
GO
/*
--------------------------------------------------------
OUTPUT IS:
--------------------------------------------------------
1)ASCII VALUE FOR P IS 80
2)ASCII VALUE FOR R IS 82
3)ASCII VALUE FOR A IS 65
4)ASCII VALUE FOR B IS 66
5)ASCII VALUE FOR H IS 72
6)ASCII VALUE FOR U IS 85
--------------------------------------------------------
*/
/*
--------------------------------------------------------
3) CHARINDEX - RETURN THE STARTING POSITION IN THE GIVEN STRING BASED ON THE EXPRESSION
SYNTAX:
CHARINDEX ('STRING_TO_BE_FOUND','STRING_TO_BE_SEARCHED_ON',STARTLOCATION)
WHERE
STRING_TO_BE_FOUND - CHARACTER OR UNICODE STRING TO BE FOUND
STRING_TO_BE_SEARCHED_ON - STRING VALUE THAT TO BE SEARCHED
STARTLOCATION - OPTINAL, START SEARCH FROM THIS INDEX ONLY
--------------------------------------------------------
*/
SET TEXTSIZE 0
SET NOCOUNT ON
DECLARE @CI_STRING VARCHAR(100)
SET @CI_STRING = 'RETURN THE STARTING POSITION IN THE GIVEN STRING BASED ON THE EXPRESSION'
/* SEARCH FOR EXPRESSION FROM INDEX 0(ZERO) */
PRINT N'THE STARTING POSITION OF THE GIVEN STRING IS: '
+ CAST(CHARINDEX('THE',@CI_STRING ) AS NVARCHAR)/* OUTPUT IS: 8 */
/* SEARCH FOR EXPRESSION FROM SPECIFIC INDEX */
PRINT N'THE STARTING POSITION OF THE GIVEN STRING IS: '
+ CAST(CHARINDEX('THE',@CI_STRING,32) AS NVARCHAR)/* OUTPUT IS: 33 */
/* SEARCH FOR EXPRESSION IN CASE SENSITIVE MODE */
PRINT N'THE STARTING POSITION OF THE GIVEN STRING IS: '
+ CAST(CHARINDEX('The',@CI_STRING COLLATE LATIN1_GENERAL_CS_AS) AS NVARCHAR)/* OUTPUT IS: 0 */
/* SEARCH FOR EXPRESSION IN CASE IN-SENSITIVE MODE */
PRINT N'THE STARTING POSITION OF THE GIVEN STRING IS: '
+ CAST(CHARINDEX('THE',@CI_STRING COLLATE LATIN1_GENERAL_CI_AI) AS NVARCHAR)/* OUTPUT IS: 8 */
SET NOCOUNT OFF
GO
--------------------------------------------------------
/*
--------------------------------------------------------
4) SOUNDEX - EVALUATES SIMILARITY BETWEEN TWO OR MORE STRINGS */
/* WILL RETURN FOUR CHARACTER CODE TO FIND SIMILARITY BETWEEN TWO OR MORE STRINGS */
--------------------------------------------------------
SET TEXTSIZE 0
SET NOCOUNT ON
SELECT SOUNDEX('PRABHU'), SOUNDEX('PRABRU'), SOUNDEX('PRABRQ')
SET NOCOUNT OFF
GO
--------------------------------------------------------
/*
--------------------------------------------------------
5) DIFFERENCE - RETURN DIFFERENCE BETWEEN TWO SOUNDEX VALUES
SYNTAX:
DIFFERENCE('CHARACTER_EXPRESSION','CHARACTER_EXPRESSION')
WHERE
'CHARACTER_EXPRESSION' - CHAR OR VARCHAR VALUE
--------------------------------------------------------
*/
SET TEXTSIZE 0
SET NOCOUNT ON
SELECT DIFFERENCE('P610', 'P610')/* OUTPUT IS: 4 */
SET NOCOUNT OFF
GO
--------------------------------------------------------
/*
--------------------------------------------------------
6) LEFT - RETURN LEFT PART OF THE GIVEN STRING WITH SPECIFIED NUMBER OF CHARACTERS
SYNTAX:
LEFT('STRING_EXPRESSION', NUMBER_OF_CHARACTERS)
WHERE
'STRING_EXPRESSION' - STRING OF UNICODE CHARACTER'S OR BINARY DATA TYPE VALUE.
'NUMBER_OF_CHARACTERS' - NUMBER OF CHARACTERS TO BE RETURN
--------------------------------------------------------
*/
SET TEXTSIZE 0
SET NOCOUNT ON
SELECT LEFT('HELLO, GOOD MORNING!', 5)/* OUTPUT IS: HELLO */
SET NOCOUNT OFF
GO
--------------------------------------------------------
/*
--------------------------------------------------------
7) LEN - RETURNS THE COUNT OF TOTAL NUMBER OF CHARACTERS IN THE GIVEN STRING
SYNTAX:
LEN('STRING_EXPRESSION')
WHERE
STRING_EXPRESSION - UNICODE STRING OR BINARY DATA.
--------------------------------------------------------
*/
SET TEXTSIZE 0
SET NOCOUNT ON
/*RETURNS THE COUNT OF CHARACTERS IN THE STRING, EXCLUDING TRAILING BLANKS*/
/* LEADING BLANKS ALSO COUNTED BUT TRAILING BLANKS EXCLUDED */
SELECT LEN(' RETURN LEFT PART OF THE GIVEN STRING WITH SPECIFIED NUMBER OF CHARACTERS ') /*WILL RETURN, 81 */
/*RETURNS THE COUNT OF CHARACTERS IN THE STRING, INCLUDING TRAILING BLANKS*/
/* BOTH LEADING AND TRAILING BLANKS WILL BE COUNTED */
SELECT DATALENGTH(' RETURN LEFT PART OF THE GIVEN STRING WITH SPECIFIED NUMBER OF CHARACTERS ')/*WILL RETURN, 78 */
SET NOCOUNT OFF
GO
--------------------------------------------------------
/*
--------------------------------------------------------
8) LOWER - CONVERTS ALL CHARACTERS IN THE STRING TO LOWER CASE LETTER
SYNTAX:
LOWER('STRING_EXPRESSION')
WHERE
'STRING_EXPRESSION' - UNICODE STRING OR BINARY DATA.
--------------------------------------------------------
*/
SET TEXTSIZE 0
SET NOCOUNT ON
PRINT N''+ LOWER('LOWER - CONVERTS ALL CHARACTERS IN THE STRING TO LOWER CASE LETTER')
/*
OUTPUT AS:
--------------------------------------------------------
lower - converts all characters in the string to lower case letter
--------------------------------------------------------
*/
SET NOCOUNT OFF
GO
--------------------------------------------------------
/*
--------------------------------------------------------
9) LTRIM - RETURNS THE GIVEN STRING AGTER REMOVING ITS LEADING BLANKS.
SYNTAX:
LTRIM('UNICODE_STRING')
WHERE
UNICODE_STRING - UNICODE DATA OR BINAY DATA
*/
--------------------------------------------------------
SET TEXTSIZE 0
SET NOCOUNT ON
PRINT N''+ LTRIM(' LOWER - CONVERTS ALL CHARACTERS IN THE STRING TO LOWER CASE LETTER')/*THE LEADING BLANKS WILL BE REMOVED*/
SET NOCOUNT OFF
GO
--------------------------------------------------------
/*
--------------------------------------------------------
10) UNICODE - RETURN INTEGER VALUE, IN UNICODE STANDARD, FOR THE FIRST CHARACTER IN THE GIVEN EXPRESSION
SYNTAX:
UNICODE('CHARACTER_VALUE')
WHERE
'CHARACTER_VALUE' - SINGLE CHARACTER OR UNICODE STRING. FOR UNICODE STRING, THE FIRST CHARACTER ONLY BEEN TAKEN
--------------------------------------------------------
11) NCHAR - RETURN UNICODE CHARACTER, IN UNICODE STANDARD, FOR THE GIVEN INTEGER VALUE
SYNTAX:
NCHAR(INTEGER_VALUE)
WHERE
INTEGER_VALUE - POSITIVE INTEGER VALUE FROM 0 TO 65535. OUT OF THE RANGE WILL RETURN NULL VALUE.
--------------------------------------------------------
*/
SET TEXTSIZE 0

Join the conversation! Your thoughts help the community grow.