2012-05-08 17 views
1

Sybaseサーバーへのクエリの1つがガベージ・データを戻しています。いくつかの調査の結果、データ型doubleのカラムの1つが問題を引き起こしていることが分かりました。その特定の列を選択しないと、クエリは正しい結果を返します。列は小数点以下桁数のdouble型です。私は最大4小数点までラウンド関数を使用しようとしましたが、まだ私は破損したデータを取得します。正しいデータを取得するために、クエリの列を正しく指定するにはどうすればよいですか?sybaseクエリーで列のデータ型を変更する方法は?

私はWindows 7のボックスとSybase Adaptive Serverエンタープライズドライバを使用しています。 (Sybaseクライアント15.5)。私は32ビットドライバを使用しています。

サンプル結果:

窓に

誤った結果使用してSybase ASEドライバ7ボックス

"select ric_code as ric, adjusted_weight as adjweight from v_temp_idx_comp where index_ric_code='.AXJO' and ric_code='AQG.AX'" 

ric adjweight 
1 AQG.AX  NA 
2 \020  NA 
3 <NA>  NA 

"select ric_code, adjusted_weight from v_temp_idx_comp where index_ric_code='.AXJO' and ric_code='AQG.AX'" 

ric_code adjusted_weight 
1 AQG.AX 0.3163873547 

よろしくのMerantドライバを使用してWindows XPボックスの

正しい結果、 Alok

+0

私に結果の例を教えてください。 –

答えて

1

数値に変換してみてくださいこのように:

select ric_code as ric, weight, convert(numeric(16,4), adjusted_weight) as adjweight, currency as currency 
from v_temp_idx_comp 
where index_ric_code='.AXJO' 
+0

これは機能しませんでした。エラーが発生しました。 '1'」ZZZZZ 2715 [Sybase] [ODBC Driver] [Adaptive Server Enterprise] 'double'タイプが見つかりません。 ' – Alok

+1

数値で試してみてください。私は私の答えを更新しました。 –

+0

はい、数値ソリューションは正常に動作しました。ありがとう。私はこれを答えにするつもりです。 – Alok

関連する問題