0

varchar フィールドを decimal に変換しようとすると、1 つ以上の列を除外することに問題があります。私のステートメントは次のとおりです。

SELECT title, CAST(sumValues AS DECIMAL(9,2)
WHERE title != 'Total Clients') AS sumVal
FROM client_summary

タイトルが「Total Clients」である列を除いて、フィールドを10進数に変換したいsumValues(人数のカウントに小数点はありません)。これに対する私の適切な発言はどの程度でしょうか?

4

1 に答える 1

1

これを試すことができます: 注意、case...when...elseステートメントのすべての部分が同じ型 (または暗黙的な変換) のデータを返さなければなりません。

SELECT title, 
CASE WHEN title <> 'Total Clients' 
 THEN CAST( sumValues AS DECIMAL(9,2)) 
 ELSE <something else which must also be decimal> --or no else
 END AS sumVal 
FROM client_summary

編集 : 共通の型が見つからない場合は、2 つの列を使用する必要があります。

SELECT title, 
    CASE WHEN title <> 'Total Clients' 
     THEN CAST( sumValues AS DECIMAL(9,2)) 
     END AS sumVal,
    sumValues as allSumValues
 FROM client_summary
于 2013-01-24T10:13:48.607 に答える