如何返回具有完整列值的列max子字符串?

时间:2015-12-24 12:37:38

标签: sql

的所有人。我正面临一个问题。我有一个如下查询:

SELECT  MAX(SUBSTRING(account_code ,5,3 )) as first_level_code 
FROM acc_coa 
WHERE category = '1';

哪个工作正常,但现在我需要获得完整的列值。我这样做但不行。

SELECT  account_code, MAX(SUBSTRING(account_code ,5,3 )) as first_level_code 
FROM acc_coa 
WHERE category = '1' 

我怎样才能做到这一点? 提前谢谢。

3 个答案:

答案 0 :(得分:2)

使用subselect

{{1}}

答案 1 :(得分:1)

在查询结尾处添加group by account_code

答案 2 :(得分:1)

使用ORDER BY以及获取一行的方法:

SELECT  c.*, SUBSTRING(account_code, 5, 3) as first_level_code
FROM acc_coa c
WHERE category = '1'
ORDER BY SUBSTRING(account_code, 5, 3) DESC
FETCH FIRST 1 ROW ONLY;

注意:FETCH FIRST 1 ROW ONLY是获取一行的ANSI标准机制。有些数据库使用LIMITTOP或其他机制。