2014-04-30 2 views
-3

Oracle SQL을 사용하고 문자가있는 문자열을 추가하려고합니다. 문자열의 크기가 20보다 긴 경우 어떻게해야합니까?단어 개수가 20보다 큰 경우 문자 추가

글쎄 내 시도는 이것입니다.

SELECT 
DECODE(PKG_DESC, 
LENGTH(PKG_DESC) > 20, '...', 
'UNKNOWN' 
) 
FROM VW_LOGIN_INF; 

그러나이 같은 오류

Error at Command Line:3 Column:22 
Error report: 
SQL Error: ORA-00907: missing right parenthesis 
00907. 00000 - "missing right parenthesis" 
*Cause:  
*Action: 

답변

1
SELECT 
CASE WHEN LENGTH(sentence) > 50 THEN 
    sentence || '...' 
    WHEN LENGTH(sentence) > 20 THEN 
    sentence || '.' 
    ELSE 
    sentence 
END as sentence 
FROM 
YOURTABLE 
0

뭔가 보여? 이 가득 채워진 내 필요 @OracleUser

SELECT decode(sentence || appstr, length(sentence) > 20, sentence) FROM TABLE 
1

덕분에 ..

SELECT 
CASE WHEN LENGTH(PKG_DESC) > 50 THEN 
    SUBSTR(PKG_DESC,0,INSTR(PKG_DESC,' ',1,10)) || '...' 
    WHEN LENGTH(PKG_DESC) > 20 THEN 
    SUBSTR(PKG_DESC,0,INSTR(PKG_DESC,' ',1,10)) || '.' 
    ELSE 
    PKG_DESC 
END as PKG_DESC 
FROM 
VW_LOGIN_INF 
관련 문제