2012-03-20 2 views
2
 message 
------------ 
01d,2s3,1wee  (nvarchar) 
01,32,32154, (nvarchar)     
     df,g,d, (nvarchar) 
    dd,12,2  (nvarchar) 

나는 아래 결과를 얻는 방법을 알고 셀 끝에 ','를 고려해야합니다. 목록의 데이터는 매일 바뀔 수 있습니다.텍스트의 양을 계산하십시오.

요청 결과

 message Count 
------------ ----- 
01d,2s3,1wee  3 
01,32,32154,  3 
     df,g,d,  3 
     dd,12,2  3 

// DWD

+0

원하는 결과는 무엇입니까? – Teja

+0

','끝이나 끝이 될 수 있습니까? –

답변

2
declare @table table(message varchar(20)) 
insert into @table values('01d,2s3,1wee'); 
insert into @table values('01,32,32154,');    
insert into @table values('df,g,d,');   
insert into @table values('dd,12,2'); 

SELECT message 
,CASE WHEN SUBSTRING(REVERSE(message),1,1) = ',' THEN 
    LEN(message) - LEN(REPLACE(message, ',', '')) ELSE 
(LEN(message) - LEN(REPLACE(message, ',', '')) +1)END As Count 
FROM @table 
+1

+1 Slick ... 나는 그 때 그것을 세는 번거 로움을 겪지 않고 후행 쉼표가있는 경우에만 왜 카운트를 조정하지 않았는지 알 수 없습니다. –

0

이러한 접근 마지막 문자가 ,이며, 다음 경우를 제거하는 경우, 검사 ...

다음

그것을 원본 메시지의 길이와 메시지 길이를 모두 비교하여 ,을 제거하여 원래 얼마나 많은 수의 ,이 있는지 확인합니다.

select 
    len(message) - len(replace(message, ',', '')) as wordCount 
from 
(
    select 
     case 
      when right(rtrim(message),1) = ',' 
      then substring(rtrim(message),1,len(rtrim(message))-1) 
      else message 
     end as message 
) trimmed 
0

나는 이것이 당신이 찾고있는 무엇을 생각 :

SELECT message 
    ,[Count] = LEN(CASE WHEN RIGHT(message, 1) = ',' THEN message ELSE message + ',' END) - LEN(REPLACE(CASE WHEN RIGHT(message, 1) = ',' THEN message ELSE message + ',' END, ',' ,'')) 
    FROM yourtablename 
0

첫째, 당신은 ","흔적을 없애, 다음 원래 문자열의 길이를 계산하고를 빼줄 필요 문자열의 길이를 ","로 대체합니다. 이런 식으로 뭔가가 :

SELECT message, LEN(Newmessage) - LEN(REPLACE(Newmessage,',','')) + 1 [Count] 
FROM (SELECT message, CASE WHEN RIGHT(message,1) = ',' THEN LEFT(message,LEN('01,32,32154,')-1) ELSE 
     message END AS Newmessage 
     FROM YourTable) A 

이 그렇지 않으면 당신이 RTRIM

0
SELECT message 
, 1 + LEN(message) - REPLACE (message , ',' , '') AS count 
FROM my_table 

진드기는 혼수 상태의 수를 계산에 구성을 ("")를 사용해야합니다, 당신의 컬럼에는 후행 공백이 없다는 것을 가정 란. 이 경우 문자열과 코마가없는 동일한 문자열 간의 차이를 계산합니다.

관련 문제