Hi
Dude
Try this Solution
Declare @Temp as table (Sno int,Letter nvarchar(50),TotalChar int)
insert INTO @Temp VALUES(1,'a,a,b,b,c,c',0)
insert INTO @Temp VALUES(2,'e,e,f,g,h,i',0)
SELECT sno,Letter,
(SELECT count(DISTINCT Data) from dbo.Split((Letter),','))as Count
from @Temp
Before Execution (Split Function)
Create this function in your DB
CREATE FUNCTION [dbo].[Split]
(
@Line nvarchar(MAX),
@SplitOn nvarchar(5) = ','
)
RETURNS @RtnValue table
(
Id INT NOT NULL IDENTITY(1,1) PRIMARY KEY CLUSTERED,
Data nvarchar(100) NOT NULL
)
AS
BEGIN
IF @Line IS NULL RETURN
DECLARE @split_on_len INT = LEN(@SplitOn)
DECLARE @start_at INT = 1
DECLARE @end_at INT
DECLARE @data_len INT
WHILE 1=1
BEGIN
SET @end_at = CHARINDEX(@SplitOn,@Line,@start_at)
SET @data_len = CASE @end_at WHEN 0 THEN LEN(@Line) ELSE @end_at-@start_at END
INSERT INTO @RtnValue (data) VALUES( SUBSTRING(@Line,@start_at,@data_len) );
IF @end_at = 0 BREAK;
SET @start_at = @end_at + @split_on_len
END
RETURN
END