* 테이블에서 *를 선택하고 여전히 단일 이름의 열에서 일부 기능을 수행합니다.

StackOverflow https://stackoverflow.com/questions/639341

문제

테이블이나 결합의 결과 테이블에서 모든 열을 반환 할 수 있고 여전히 이름으로 문자열로 날짜를 변환 할 수 있습니다.

예를 들어

my_table에서 formated_date로 id, description, to_char (change_date, 'yyyy-mm-dd hh24 : mi : ss')를 선택하십시오.

이것은이 세 열만에 좋고 좋습니다. 그러나 테이블에는 실제로 더 많은 열이 있으며 다른 테이블에 연결될 수 있습니다. 와일드 카드를 사용하여 모든 열을 얻고 여전히 TO_CHAR 변환을 수행 할 수 있기를 원합니다.

SELECT *, (Change_Date, 'yyyy-mm-dd hh24 : mi : ss') formated_date에서 my_table;

To_char에서 추측했듯이, 나는 Oracle을 사용하고 있으므로 PLSQL을 사용하고 있습니다.

따라서 내 구체적인 질문은 다음과 같습니다. 모든 열 ( *를 통해)을 선택하고 해당 열 내의 단일 열에서 함수를 호출 할 수있는 구문이 있습니까?

도움이 되었습니까?

해결책

당신이 할 수있는 가장 가까운 것은 다음과 같습니다.

SELECT 
     MY_TABLE.*, 
     (CHANGE_DATE, 'YYYY-MM-DD HH24:MI:SS') AS FORMATED_DATE 
FROM MY_TABLE;

다른 팁

여기에서 강의하기보다는. Oracle은 그것에 대해 MSSQL보다 조금 더 까다 롭지 만 이것은 저에게 효과적이었습니다.

general.goremal.*, rownum, current_date에서 general.goremal을 선택하십시오.

다음은 허용됩니다.

SELECT T1.*, T2.*, x + y as some_Z

아니면 아마도

SELECT compute_foo() as aColumn, *

마지막은 와일드 카드가 가져 오는 열에 관계없이 항상 특별한 열을 같은 장소에 보관합니다.

SQL Server에서 작성한 내용은 완벽하게 유효하며 Oracle에서도 작동해야한다고 가정합니다. 원래 형태로 그리고 형식 형식으로 한 번 날짜 열을 두 번 두 번 반환하는 것입니다.

select *를 사용하는 참고로 probly를 피해야하지만 그것은 또 다른 질문입니다 :-)

참고로, 결합 된 경우, Select *는 특히 모든 결합 필드에 동일한 정보가 있기 때문에 서버 및 네트워크 리소스를 폐기하므로 특히 피해야합니다. "Select *"와 같은 정크 코딩은 시스템의 모든 쿼리가 잘못 쓰여질 때 수정하기가 매우 어려워지는 성능 문제를 만듭니다. SQL Server에서 객체 브라우저에서 열을 드래그 할 수 있다는 것을 알고 있습니다. Oracle이 비슷한 것이 있다면 놀라지 않을 것입니다.

또한 선택 *은 데이터 테이블이 변경됨에 따라 많은 나중에 버그를 생성 할 수 있습니다. 당신이 원하는 특정 순서로 열의 이름을 지정하지 않는 것은 불량한 연습입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top