首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Informix组(11.5)

Informix组(11.5)
EN

Stack Overflow用户
提问于 2014-11-24 14:56:47
回答 1查看 2.5K关注 0票数 1

以下表结构示例:

代码语言:javascript
复制
NR1 | NR2 | PRENAME | LASTNAME

如果我查询这个表的所有4个字段并将它的前2个字段(NR1,NR2)分组到mysql中,我可以这样做:

代码语言:javascript
复制
SELECT NR1,NR2,PRENAME,LASTNAME FROM tbl GROUP BY NR1,NR1

但这在informix中是行不通的。

代码语言:javascript
复制
INFORMIX ERROR: the column (PRENAME) must be in the group by list

在google阅读了一些主题之后,它是一个"Informix特性“,所有选定的列都必须在分组列表中。但如果我这样做,结果不是我希望得到的结果。如果我用

代码语言:javascript
复制
DISTINCT

相反,GROUP BY的结果类似于false,因为我不能只将DISTINCT函数放在第1和第2列。

那么:我如何建立一个"MYSQL“函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-24 15:57:21

您的原始语法适用于一个数据库-- MySQL。而且,该数据库说,非聚合列的结果来自于不确定的行。因此,一个等价的查询就是使用MIN()MAX()

代码语言:javascript
复制
SELECT NR1, NR2, MIN(PRENAME), MIN(LASTNAME)
FROM tbl
GROUP BY NR1, NR1;

我的猜测是,您希望从一行中获得任意值。我想把它们连在一起:

代码语言:javascript
复制
SELECT NR1, NR2, MIN(PRENAME || ' ' || LASTNAME)
FROM tbl
GROUP BY NR1, NR1;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27107685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档