3

我想修改名称列并将其设为小写,但我也想选择所有其他列。有没有办法做到这一点而不必写每列的名称。

我正在尝试做这样的事情:

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

而不是写出所有列名,如下所示:

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

这可能吗?

4

3 回答 3

1

你不能,但一种选择是使用视图:

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

一旦定义(即这是一次性创建语句),您可以简单地使用:

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

不,除了明确列出所有列之外,没有选择所有列的表示法。

(实际上可以使用动态 SQL,但您真的不想这样做。)

于 2012-07-14T06:57:15.980 回答