的所有人。我正面临一个问题。我有一个如下查询:
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'
我怎样才能做到这一点? 提前谢谢。
答案 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标准机制。有些数据库使用LIMIT
或TOP
或其他机制。