2017-04-13 87 views
0

如何修剪DB2中select查询中列的前三个字符?我想下面的查询,但没有奏效修剪DB2中的前3个字符

SELECT 
MIN(Column1),UPPER(RIGHT(Column2, LENGTH(Column2 - 3))) AS TEST 
FROM TEST_TABLE 
GROUP BY UPPER(Column2) 
ORDER BY UPPER(Column2); 

我得到异常

The statement cannot be processed. 

User response: 

Correct the statement by including the expression in the GROUP BY clause 
that are in the SELECT clause, HAVING clause, or ORDER BY clause or by 
removing the column function from the SELECT statement. 

sqlcode: -119 

sqlstate: 42803 
+0

什么意思',但没有奏效'? – Jens

+0

@Jens我得到下面的异常....声明无法处理。 用户响应: 通过包括BY子句 是SELECT子句中的组的表达,HAVING子句或ORDER BY子句或通过 从SELECT语句除去列函数更正语句。 sqlcode:-119 sqlstate:42803 – Hari

回答

0

您可以简单地使用字符串函数来完成下同。

SELECT 
MIN(Column1),substr(Column2,4) AS TEST 
FROM TEST_TABLE 
GROUP BY UPPER(substr(Column2,4)) 
ORDER BY UPPER(substr(Column2,4)); 
-1

只要做到:

SELECT 
MIN(Column1),UPPER(substr(Column2, 4)) AS TEST 
FROM TEST_TABLE 
GROUP BY UPPER(substr(Column2, 4)) 
ORDER BY 2;