【问题标题】:How to make select query alias as query --mysql or postgresql or sqlite如何将选择查询别名设为查询 --mysql 或 postgresql 或 sqlite
【发布时间】:2016-07-23 03:58:50
【问题描述】:

我想使用别名进行查询,但需要可更改的别名作为名称。 例如这是一个简单的查询:

"SELECT col1 AS 'first name' , col2 AS 'second name' FROM my_table ";

现在我需要如下更改结果:

"SELECT 
col1 AS ("SELECT difin FROM languge WHERE word = 'col1' "),
col2 AS ("SELECT difin FROM languge WHERE word = 'col2' ")
FROM my_table "

我尝试了 make 函数,但在 'AS' 之后不能接受任何语法。

【问题讨论】:

  • 你能分享一下你尝试制作的功能吗?
  • 请提供样本数据和预期结果。事实上,很难理解您正在尝试做什么。
  • 您正在寻找的可能是动态 SQL。例如,在 PostgreSQL 中,您可以不直接在 SQL 中使用它(它没有像在其他开源系统中那样实现),而是在 PL/pgSQL 语言中(参见manual,“40.5.4. 执行动态命令”部分稍后在该页面中。
  • DELIMITER $$ CREATE FUNCTION lang_ch(word TEXT CHARSET utf8) RETURNS TEXT CHARSET utf8 BEGIN RETURN (SELECT ch FROM lang where var=word LIMIT 1);结尾; $$ 分隔符;
  • 其实我想为不同的语言使用列名。

标签: mysql database postgresql syntax alias


【解决方案1】:

如果我正确理解您的问题,这里有一个使用多个 joins 的选项:

select l.difin col1,
       l2.difin col2
from my_table t 
      join language l on t.col1 = l.word
      join language l2 on t.col2 = l2.word

根据您的数据,您可能需要改用outer join

【讨论】:

    【解决方案2】:

    我在这里制作了下面的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 2019-06-22
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      相关资源
      最近更新 更多