2012-03-15 11 views
1

テーブルのフィールド値の長さを見つけて比較しようとしています。 DB2 - テーブルフィールドの値の長さを見つけて比較する

Table1 
Id Name 
1 abcd 
2 xyz 
3 Y 

は私が LENを試みた結果は、ID 1

でレコードのみを持つべき3以上の長さの名前を見つけようとしています。それはDB2にはない。私はlengthを試しました。そのフィールドの長さではなく、そのフィールドの値のアクタールの長さです。

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

答えて

4

あなたのフィールドはおそらく定義されてTABLE1からnamelengthとしてwhere句自体、

。SELECT ID、名前、LENGTH(名)の状態を確認することができますCHARとして残りの長さをスペースで埋めます。

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

これは、Linux/UNIX/WindowsのDB2を前提としています。あなたはTRIMこれをオフにし、あなたが探しているものを買ってあげることができます。メインフレームのz/OS DB2を使用している場合は、TRIMの代わりにRTRIMを使用します。

+0

私は通常、RTRIMを使用します。つまり、先頭のスペースを省略します。 –

0

あなたがLENGTH(名前が)> 3

+0

これをdb2で試しましたか? – zod

関連する問題