【问题标题】:Creating a column name alias from a select statement从 select 语句创建列名别名
【发布时间】:2013-10-18 19:14:24
【问题描述】:

我正在尝试通过在另一个表中查找值来创建列别名。这是我正在尝试的 MySQL,但不断出现语法错误 - 任何帮助将不胜感激。

SELECT
product_code,
bField1 as (select [label_value] from [labels] where [field_value]='bField1'),
bField2 as (select [label_value] from [labels] where [field_value]='bField2'),
....
FROM products

【问题讨论】:

  • 应该是相反的<expression> as <alias>
  • 你确定这是 MySQL 吗?
  • 这就是示例代码的编写方式......这是我试图使动态而不是表达式/字段值的别名
  • 是的,我正在使用 MySQL(通过 PHPRunner 接口)

标签: mysql


【解决方案1】:

尝试如下:

SELECT
product_code,
(select [label_value] from [labels] where [field_value]='bField1') as bField1,
(select [label_value] from [labels] where [field_value]='bField2') as bField2,
....
FROM products

【讨论】:

  • 我仍然希望只返回列别名的 bField1 列需要从另一个表中获取。你是说 MySQL 的做法与 SQL 相反,并且别名在语法中的列之前?
【解决方案2】:

只有 MySQL 无法实现您想要的。

类似问题见下文:

Dynamic column alias based on column value

Specifying column alias with user-defined variable

我不确定您究竟为什么要这样做,但始终可以将别名选择逻辑与动态创建查询的服务器端语言结合起来。但是,当然,这将是一个两步过程,但您实际上并没有输掉,因为在您的示例中,您无论如何都在使用子查询。

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2014-03-07
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多