我试图找到并比较表格中字段值的长度。
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
答案 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