2012-03-15 100 views
1

我试图查找并比较表格中字段值的长度。DB2 - 查找并比较表格字段中值的长度

Table1 
Id Name 
1 abcd 
2 xyz 
3 Y 

我试图找到长度大于3更名结果应该只有记录ID为1

我试过LEN。它不在db2中。我试过length。它给出了领域的长度,而不是该领域的价值的长短。

select id,name,LENGTH(name) as namelength from table1 
group by id,name having LENGTH(name)>3 

回答

4

你的领域可能是定义如CHAR,它用剩余长度填充空格。您可以TRIM这一关,你会得到你在找什么:

SELECT id,name,LENGTH(TRIM(name)) AS namelength 
FROM table1 
GROUP BY id,name 
HAVING LENGTH(TRIM(name)) > 3 

这是假设的Linux/UNIX/Windows的DB2。如果您在大型机z/OS DB2上,那么您将使用RTRIM而不是TRIM

+0

我通常使用RTRIM,即省略领先空格。 – 2013-05-12 19:51:11

0

您可以检查where子句本身的条件,

选择ID,名称,长度(名称)从表1 namelength其中length(名称)> 3

+0

你在db2中试过这个吗? – zod 2012-03-15 19:59:43