2017-06-22 9 views
0

テーブルから値を選択しています。テーブルの中にはvalueという列があります。値が数字のときに値の最後に 'g'を付けてその値を選択しようとしています。しかし、私はこれをしようとすると、私は次のエラーが表示されます(下記を参照してください)。私はISNUMERICを使用しているため、これは、値は文字列値の番号または文字列値 'None'(i奇妙なことを知っているが、私はこのようにしなければならない)、私は変換の失敗を得る。あなたはブール値を返しますISNUMERIC()代わりCASE a.value WHEN ISNUMERIC(a.value)SQL Server 2005 - 変換エラー

CASE WHEN a.assignment_type = 'HW' 
    THEN 
     CASE WHEN ISNUMERIC(a.value) = 1 
       THEN RTRIM(a.value)+'g' 
       ELSE a.value 
       END 
    ELSE a.value 
    END 

CASE WHEN ISNUMERIC(a.value) = 1を使用する必要があるSQL Serverでこの問題を解決する方法を誰もが知っている2005

エラー

Msg 245, Level 16, State 1, Line 1 
Conversion failed when converting the varchar value 'None' to data type int. 

クエリ

SELECT a.student_assignment_id,   
      a.student_id,   
      a.location_id,   
      a.assignment_type, 
      (
      Case 
       WHEN a.assignment_type = 'HW' THEN 
        CASE a.value 
        WHEN ISNUMERIC(a.value) THEN RTRIM(a.value)+'g' 
        ELSE a.value 
        END 
       ELSE a.value 
      END 
      ) as value 
      ,   
      a.start_date,   
      a.end_date,   
      a.course,    
      a.created_by,   
      a.creation_date,   
      a.modified_by,   
      a.modified_date, 
+3

に文字列a.valueを比較しようとしているので、あなたは、クエリの残りの部分を投稿することができますか? – mituw16

答えて

1

0(数値ではありません)または1(数値)、あなたの現在のクエリがint(0または1