在我的创建视图中,我想:
SELECT CONCAT( t.str1, t.str2 ) AS Title, CHAR_LENGTH( Title ) AS Length
但这会产生错误:
“字段列表”中的未知列“标题”。
在没有Concat相同字符串两次的情况下,这样做的正确方法是什么?
答案 0 :(得分:0)
您无法引用您在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
强>
&#34; All-at-Once Operations&#34;意味着所有表达式都相同 逻辑查询过程阶段在逻辑上同时进行评估。
和
我们不能在SELECT子句中的下一列表达式中使用别名。 在查询中,我们创建了一个更正的名字,我们想在其中使用它 下一列产生全名,但是All-at-Once操作 概念告诉我们你不能这样做,因为所有表达式都在 评估相同的逻辑查询过程阶段(这里是SELECT) 在逻辑上同时。