WITH t AS( SELECT '구루비' name, '꿈꾸는개발자' code UNION ALL SELECT '질문과답변' name , 'Q&A' code ) SELECT name,code, name+code as hoho FROM t
위같은 쿼리를 만들었다고 하면요..(여기선 mssql)
'name','code','hoho' 를 뽑아올수 있는 방법이 있을까요??
oracle / mssql / mysql 에 각각 혹시 함수같은게 있나요??
아니면.. 뽑아낼 수 있는 방법이 뭐가 있을까요???
저도 난독증이 있어서... ㅋㅅㅋ)ㆀ
1. 위 값을 가지고 어떤 결과를 원하시는 것인지 명확한 것 같지 않습니다. 결과 예시를 주시면 도움이 될 것 같습니다.
2. name, code, hoho의 무엇을 뽑는다는 것인가용? 이미 조회 구문으로 name, code, hoho 뽑았는데 이 방법이 아닌 name, code, hoho를 뽑아야 하는 단서가 없습니다.
3. 이미 작성하신 SQL은 큰 내용으로는 Oracle, SQL, MySQL 에 다 잘 작동하는 SQL입니다.
(가상 테이블절 WITH, 오라클 가상 테이블절 DUAL 지정 제외) 근데 Oracle, SQL, MySQL에서? 각각? 함수? 각 DBMS에서 무엇을 위한 함수를 말씀하시는 것인지 역시 단서가 없습니다.
EMPLOYEE ( EMPNO, EMPNAME, TITLE, CITY, KU, DONG, SALARY, DNO)
SELECT (조회하고있는필드명을가져와줘!!) AS result
FROM
(
SELECT EMPNO AS 사원번호,
EMPNAME AS 사원명,
TITLE AS 직급,
CITY + KU + DONG AS ADDRESS,
SALARY
FROM EMPLOYEE
)
라고 실행시키면
result |
'사원번호','사원명','직급','ADDRESS','SALARY' |
이런식으로 결과값이 나오는걸 원한건데..ㅠㅠ
사원번호 |
---|
사원명 |
직급 |
ADDRESS |
SALARY |
이렇게 나와두 되구요~
만약 뽑아오는 필드가 엄청 많다면 위와같은방법으로 확인할 수 있을까??
해서 올린 질문입니다ㅠ
DECLARE TYPE ref_cursor IS REF CURSOR; rc_ ref_cursor; c_ NUMBER; i_ NUMBER; col_count_ NUMBER; desc_tab_ DBMS_SQL.DESC_TAB; v_result VARCHAR(4000); BEGIN OPEN rc_ FOR ' SELECT DUMMY , DUMMY || ''BB'' AS TT FROM DUAL A '; c_ := DBMS_SQL.to_cursor_number(rc_); DBMS_SQL.DESCRIBE_COLUMNS(c_, col_count_, desc_tab_); FOR i_ IN 1..col_count_ LOOP DBMS_OUTPUT.PUT_LINE('col_max_len:' || desc_tab_(i_).col_max_len); DBMS_OUTPUT.PUT_LINE('col_name:' || desc_tab_(i_).col_name); DBMS_OUTPUT.PUT_LINE('col_type:' || desc_tab_(i_).col_type); -- DBMS_OUTPUT.PUT_LINE('col_size' || desc_tab_(i_).col_size); DBMS_OUTPUT.PUT_LINE('col_precision:' || desc_tab_(i_).col_precision); DBMS_OUTPUT.PUT_LINE('col_scale:' || desc_tab_(i_).col_scale); DBMS_OUTPUT.PUT_LINE('--------------------------------------------'); END LOOP; DBMS_SQL.CLOSE_CURSOR(c_); END;