반응형
줄의 마지막 글자를 얻는 방법은?
줄의 마지막 글자를 어떻게 구해서 모음인지 자음인지 확인할 수 있나요?저는 오라클 10g을 사용하고 있습니다.
제가 이미 생각해낸 것은 다음과 같습니다.
SELECT last_name,
Substr(last_name, -1, 1) "Last letter",
Substr(last_name, 1, 1) "First letter",
CASE
WHEN Substr(last_name, -1, 1) IN ( 'a', 'e', 'i', 'o', 'u' ) THEN
'ends with a vowel'
WHEN Substr(last_name, -1, 1) IN ( 'b', 'c', 'd', 'f',
'g', 'h', 'j', 'k',
'l', 'm', 'n', 'p',
'q', 'r', 's', 't',
'v', 'w', 'x', 'y', 'z' ) THEN
'ends with a consonant'
END "Last Letter Description",
CASE
WHEN Substr(last_name, 1, 1) IN ( 'a', 'e', 'i', 'o', 'u' ) THEN
'starts with a consonant'
WHEN Substr(last_name, 1, 1) IN ( 'b', 'c', 'd', 'f',
'g', 'h', 'j', 'k',
'l', 'm', 'n', 'p',
'q', 'r', 's', 't',
'v', 'w', 'x', 'y', 'z' ) THEN
'starts with a consonant'
END "First Letter Description"
FROM employees
GROUP BY first_name,
last_name
이제 오라클 10g에서 이를 실행하면 "첫 글자 설명"이 비어 있습니다!내 코드에 무슨 문제가 있습니까?
완벽하지는 않지만 쉽게 조정하면 원하는 대로 작동할 수 있습니다.
FUNCTION last_is_vowel (string_in VARCHAR2)
RETURN BOOLEAN
IS
BEGIN
RETURN CASE WHEN LOWER(SUBSTR(string_in, -1)) IN ('a', 'e', 'i', 'o', 'u')
THEN TRUE
ELSE FALSE
END;
END last_is_vowel;
당신의 데이터를 보세요.가능성은 사원의 첫 번째 문자입니다.last_name은 대문자입니다.Oracle은 대소문자를 구분합니다.UPPER() 또는 LOWER()를 사용하여 일치하는 항목을 찾을 수 있습니다.
또한 주앙이 제안하는 것처럼 제외를 찾기 위해서 모음만 검색하고 다른 문장을 사용하는 것이 더 효율적일 것입니다.
SELECT last_name,
Substr(last_name, -1, 1) "Last character",
Substr(last_name, 1, 1) "First character",
CASE
WHEN lower(Substr(last_name, -1, 1)) IN ( 'a', 'e', 'i', 'o', 'u' ) THEN
'ends with a vowel'
ELSE
'does not end with a vowel'
END "Last Letter Description",
CASE
WHEN lower(Substr(last_name, 1, 1)) IN ( 'a', 'e', 'i', 'o', 'u' ) THEN
'starts with a vowel'
ELSE
'does not start with a vowel'
END "First Letter Description"
FROM employees
GROUP BY first_name,
last_name
언급URL : https://stackoverflow.com/questions/13220874/how-to-get-the-last-letter-of-a-string
반응형
'source' 카테고리의 다른 글
php 없이 워드프레스 테마를 코딩하는 것이 가능합니까? (0) | 2023.09.24 |
---|---|
사용자 지정 게시 상태가 나타나지 않음 (0) | 2023.09.24 |
Oracle에서 그룹화 기준과 파티션별로 그룹화 (0) | 2023.09.24 |
저장 프로시저 PLS-00201에서 Oracle nvl2가 작동하지 않음: 식별자 'NVL2'를 선언해야 합니다. (0) | 2023.09.24 |
jquery 태그 클릭 이벤트 (0) | 2023.09.24 |