在我的CREATE VIEW中,我想:
SELECT CONCAT( t.str1, t.str2 ) AS Title, CHAR_LENGTH( Title ) AS Length
但这会产生错误:
"字段列表"中的未知列"标题"。
在不需要对相同的字符串进行两次Concat的情况下,正确的方法是什么?
您不能引用在SELECT
中创建的别名,请使用表达式:
SELECT CONCAT( t.str1, t.str2 ) AS Title,
CHAR_LENGTH(CONCAT( t.str1, t.str2 ) ) AS Length
FROM table_name t
如果需要,可以使用子查询:
SELECT sub.Title, CHAR_LENGTH( sub.Title ) AS Length
FROM (
SELECT CONCAT( t.str1, t.str2 ) AS Title
FROM table_name t
) AS sub;
All-at-once operation
:
"一次性操作"意味着同时对逻辑查询过程阶段进行逻辑评估。
和:
不能在SELECT子句的next列表达式中使用别名。在查询中,我们创建了一个更正的名字,并希望在下一列生成全名,但"一次所有"操作概念告诉我们不能这样做,因为评估相同的逻辑查询过程阶段(此处为SELECT)在逻辑上同时。