在4GL中选择2个不同的列

Mos*_*itz 3 sql informix 4gl

需要我的4gl程序:
假设我有一个包含电话号码和姓名的表格.可以有2个人使用相同的电话号码,或2个姓名和1个电话号码.
我需要在表格中选择每个电话号码中的一个.
我做了:

SELECT DISTINCT phone_number, last_name FROM table 
Run Code Online (Sandbox Code Playgroud)

结果将显示2条记录.即使电话号码是相同的,因为名称不同,它不再是唯一的.如何获得唯一的电话号码,无论其last_name如何?(但我也希望得到姓氏.我不在乎哪一个)

Cod*_*ian 5

DISTINCT正如您所注意到的,将返回完全不同的行.

听起来你正在寻找类似的东西group by.基本上,GROUP BY phone_number每个电话号码将返回一行.因为您还想获得last_name,所以您需要指示数据库如何返回它.你说你不关心哪个,所以你可以简单地写:

SELECT phone_number, MAX(last_name) as last_name
FROM table
GROUP BY phone_number
Run Code Online (Sandbox Code Playgroud)

Informix也支持FIRST_VALUE聚合函数,虽然我只在OLAP情况下使用它,所以我不记得它是否可以在这种情况下工作.