3

名前列を変更して小文字にしたいのですが、他のすべての列も選択したいです。各列の名前を書かなくてもこれを行う方法はありますか。

私はこのようなことをしようとしています:

SELECT *, lcase(name) AS name FROM table;

すべての列名を書き出す代わりに、次のようにします。

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

これは可能ですか?

4

3 に答える 3

1

できませんが、1 つのオプションはビューを使用することです。

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

一度定義すると (つまり、これは 1 回限りの create ステートメントです)、次のように簡単に使用できます。

select * from table_with_lower_name;

ビューを使用する場合、変更された列 (ここのように) を更新できないなど、いくつかの注意点がありますが、うまくnameいく可能性があります。

于 2012-07-14T07:01:41.290 に答える
0

あなたのスニペットはそのまま機能します!ただしselect *、悪いフォームと見なされ、パフォーマンス ヒットになる可能性があります。

わかりやすくするために、テーブル エイリアスを使用することもできます。

SELECT t.*, lcase(t.name) AS name FROM table t;
于 2012-07-14T06:56:26.340 に答える
0

いいえ、すべての列を明示的にリストする以外に、1 つを除いてすべての列を選択する表記法はありません。

(実際には動的 SQL を使用することは可能ですが、実際にはそうしたくありません。)

于 2012-07-14T06:57:15.980 に答える