我想修改名称列并将其设为小写,但我还想选择所有其他列。有没有办法在不必写每列的名称的情况下执行此操作。
我正在尝试做这样的事情:
SELECT *, lcase(name) AS name FROM table;
而不是写出所有列名,如下所示:
SELECT lcase(name) AS name, zip, address, age, birthday, etc FROM table;
这可能吗?
答案 0 :(得分: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
),但它可能适合您。
答案 1 :(得分:0)
您的代码段工作原理!虽然select *
被视为不良形式,但可能会受到影响。
您可能还希望使用表别名来使其更清晰:
SELECT t.*, lcase(t.name) AS name FROM table t;
答案 2 :(得分:0)
不,除了明确列出所有列之外,没有任何表示法可以选择所有列。
(实际上可以使用动态SQL,但真的不希望这样做。)