DB2 - 查找并比较表字段中值的长度

时间:2012-03-15 19:25:55

标签: sql db2

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

Table1
Id Name 
1  abcd
2  xyz
3  Y

我试图找到长度超过3的名称。结果应该只有id为1的记录

我试过了LEN。它不在db2中。我试过length。它给出字段长度,而不是该字段中值的actaul长度。

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

2 个答案:

答案 0 :(得分: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。如果您使用的是Mainframe z / OS DB2,那么您将使用RTRIM而不是TRIM

答案 1 :(得分:0)

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

从table1中选择id,name,LENGTH(name)作为namelength,其中LENGTH(name)> 3