728x90
반응형
TO_NUMBER(문자열 char → 숫자 number)
숫자 문자로 된 문자열을 숫자 데이터로 변환하는 함수
TO_CHAR (숫자→문자열)의 형식 문자를 사용한다.
SELECT TO_NUMBER('12345', '99999') * 2
FROM dual;
TO_NUMBER('12345','99999')*2|
----------------------------+
24690|
SELECT TO_NUMBER('$24,000.00', '$99,999.99')
FROM dual;
TO_NUMBER('$24,000.00','$99,999.99')|
------------------------------------+
24000|
TO_DATE(문자열 → 날짜)
TO_CHAR(날짜 → 문자열) 함수의 형식문자를 동일하게 사용한다.
SELECT TO_DATE('20-2022-09', 'DD-YYYY-MM')
FROM dual;
TO_DATE('20-2022-09','DD-YYYY-MM')|
----------------------------------+
2022-09-20 00:00:00.000|
날짜 지정 포맷 형식 'YYYY-MM-DD HH24:MI:SS'
날짜를 DATETIME 이나 TIMESTAMP로 받을때 날짜 포맷을 지정하게 되는데
예를들면,
TO_CHAR(tranb_dt, 'YYYY-MM-DD HH24:MI:SS') 라고 쓰면 2020-02-13 18:06:03 으로 뜬다
하지만,
TO_CHAR(tranb_dt, 'YYYY-MM-DD HH:MI:SS')
이렇게 쓰게되면 2020-02-13 06:06:03 으로 뜨기때문에 24를 붙이는 것을 유의해야한다.
SELECT TO_DATE('22-09-17-20-45-50', 'YY-MM-HH24-DD-SS-MI')
FROM dual;
TO_DATE('22-09-17-20-45-50','YY-MM-HH24-DD-SS-MI')|
--------------------------------------------------+
2022-09-20 17:50:45.000|
2004/08/09 이전 입사자
SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE hire_date < TO_DATE('2004/08/09', 'YYYY/MM/DD');
EMPLOYEE_ID|LAST_NAME|SALARY|HIRE_DATE |
-----------+---------+------+-----------------------+
100|King | 24000|2003-06-17 00:00:00.000|
102|De Haan | 17000|2001-01-13 00:00:00.000|
108|Greenberg| 12008|2002-08-17 00:00:00.000|
109|Faviet | 9000|2002-08-16 00:00:00.000|
114|Raphaely | 11000|2002-12-07 00:00:00.000|
115|Khoo | 3100|2003-05-18 00:00:00.000|
120|Weiss | 8000|2004-07-18 00:00:00.000|
122|Kaufling | 7900|2003-05-01 00:00:00.000|
133|Mallin | 3300|2004-06-14 00:00:00.000|
137|Ladwig | 3600|2003-07-14 00:00:00.000|
141|Rajs | 3500|2003-10-17 00:00:00.000|
156|King | 10000|2004-01-30 00:00:00.000|
157|Sully | 9500|2004-03-04 00:00:00.000|
...
Q. 사용자에게 사원의 성의 첫글자를 입력받아 해당하는 사원을 출력하는 구문을 작성하시오.
-- 치환변수 사용!!
치환변수 참고 쿼리구문)
SELECT employee_id, &col_num2
FROM employees
WHERE employee_id = &emp_id;
-- 사용자에게 프롬프트 창으로 치환변수의 값을 되물어 입력받은 값으로 치환된 구문을 실행
SELECT last_name
FROM employees
WHERE last_name = '&lname';
%기호는 치환변수의 변수명으로 사용안됨. ex) &hihi% 는 hihi까지가 치환변수명으로 인정된다.
SELECT employee_id, last_name
FROM employees
WHERE last_name LIKE UPPER('&initc%');
Q2. 사원의 성과 사원의 급여를 '*'로 표시한 문자열을 합쳐서 컬럼명을 employees_and_their_salaries로 출력하는 쿼리구문을 작성하시오. (*문자 하나는 1000달러를 가리키도록 작성)
LPAD|RPAD('???', TRUNC(급여/1000), '???)
SELECT RPAD(last_name, (SELECT max(LENGTH(last_name)) FROM employees),' ') ||
RPAD('*',TRUNC(salary/1000),'*')
AS employees_and_their_salaries, salary
FROM employees;
728x90
반응형
'DB' 카테고리의 다른 글
0927 DB - GROUP BY 절 ~ HAVING절 (0) | 2022.09.27 |
---|---|
0921 DB - 일반함수 (1) | 2022.09.21 |
0920 DB - 형식문자 (1) | 2022.09.20 |
0913 DB - 형 변환 함수 (2) | 2022.09.13 |
0913 JSP - 자원해제 메서드-closeDB(), 페이징 처리 (1) (1) | 2022.09.13 |