2012-07-05 34 views
13

文字列の長さが12文字でないフィールドを取得するSQL文の記述方法を調べようとしています。文字列が10文字の場合、文字列を取得したいだけです。DB2テキスト文字列の長さを決定する

DB2でこれを行うにはどのような機能がありますか?

私はそれがこのようなものだと思っていましたが、何も見つかりませんでした。
select * from table where not length(fieldName, 12)

+0

待機中 - データに**特定の**列( 'フィールド')が含まれている文字数が10文字の場合、または**未知数*を取得したい場合は、 *列のすべての値(または列の名前)の長さが10文字のすべての行の列? –

+0

ID番号の列からすべての行を取得したい。いくつかのID番号は10桁で、いくつかは9で、いくつかは12です。私は12桁の数字を除いてすべてを欲しいです。 – Frantumn

+0

この列は実際には数値型ですか、またはIDで数字を使用していますか?実際に数字列の場合は、単純な数値比較を行います。数字を含む文字列の場合は、先頭に0を付けないでください。 –

答えて

21

これは10文字の長さである(フィールド名列)の文字列を持つレコードをつかむだろう:

select * from table where length(fieldName)=10 
+0

また、次の点を確認してください。http://www.ibm.com/developerworks/data/library/techarticle/dm-0705nair/ - 文字列の長さを決定するのが時々難しいかもしれません。 –

22

同様の質問DB2 - find and compare the lentgh of the value in a table fieldから - LENGTHは、列定義の長さを返しますので、RTRIMを追加します。

select * from table where length(RTRIM(fieldName))=10 
+1

これはトリックです! OPの質問のような文字列の実際の長さを取得し、列の長さは取得しません。 –

+1

この回答は正しい – numsu

関連する問題