2012-07-14 2 views
3

이름 열을 수정하고 소문자로 만들려고하지만 다른 모든 열을 선택하고 싶습니다. 각 열의 이름을 쓰지 않아도이를 수행 할 수있는 방법이 있습니까?어떻게하면됩니까? SELECT *, lcase (name) AS 이름 테이블에서

나는 같은 것을 할 노력하고 있어요 :

대신이 같은 모든 열 이름, 작성하는의
SELECT *, lcase(name) AS name FROM table; 

:

SELECT lcase(name) AS name, zip, address, age, birthday, etc FROM table; 

이 가능를?

+0

좋은 질문입니다! +1 – aleroot

답변

0

스 니펫이 그대로 작동합니다. select *은 나쁜 형식으로 간주되어 성능이 저하 될 수 있습니다.

당신은 또한 명확하게하기 위해 테이블의 별칭을 사용하는 것이 좋습니다 :

SELECT t.*, lcase(t.name) AS name FROM table t; 
+1

나는이 답변이 괜찮다고 생각합니다. "lcase (t.name) AS lower_name"과 같은 다른 이름을 시스템에 혼란을 피하기 위해 제공하십시오. –

0

아니, 따로 명시 적으로 모든 열을 목록에서 하나를 제외한 모든 열을 선택하는 아무 표기가 없다.

당신은 할 수 없습니다

1

(. 사실 그것은 동적 SQL하지만 당신에게 을 사용하여 정말이 그렇게하고 싶지 않아 가능하다)하지만, 하나의 옵션은 뷰 사용하는 것입니다

create view table_with_lower_name as 
select lcase(name) AS name, zip, address, age, birthday, etc 
from table; 

일단 (이 문장을 생성 한 시간 IE) 정의, 당신은 간단하게 사용할 수 있습니다

select * from table_with_lower_name; 

몇 가지주의 사항이있다 뷰를 사용하는 경우, 당신은 modif를 업데이트 할 수 없습니다처럼 (예 : 여기 name과 같은) 열을 사용하면 효과적 일 수 있습니다.

+0

+1 불행히도 'SELECT (* EXCEPT name) ...'과 같은 구문은 없지만이 질문에 가장 잘 답하고 해결 방법이지만 해커는 아닙니다. 문제는 많은 다른 쿼리를 사용하여이 작업을 수행하려는 경우 각 쿼리에 대한보기를 만들어야하며, 모든 열을 지정하는 것보다 더 확실하게 작업 할 수 있습니다. 쿼리에서 이름을 지정합니다 (어쨌든 실제로 더 나은 방법입니다). –

관련 문제