我想修改名称列并将其设为小写,但我也想选择所有其他列。有没有办法做到这一点而不必写每列的名称。
我正在尝试做这样的事情:
SELECT *, lcase(name) AS name FROM table;
而不是写出所有列名,如下所示:
SELECT lcase(name) AS name, zip, address, age, birthday, etc FROM table;
这可能吗?
你不能,但一种选择是使用视图:
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
通过它们更新已修改的列(如此处),但它可能对您有用。
您的代码段按原样工作!虽然select *
被认为是不好的形式,并且可能会影响性能。
您可能还喜欢使用表别名来使其更清晰:
SELECT t.*, lcase(t.name) AS name FROM table t;
不,除了明确列出所有列之外,没有选择所有列的表示法。
(实际上可以使用动态 SQL,但您真的不想这样做。)