2012-03-15 74 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