2017-08-11 6 views
-2

NVARCHAR形式のテーブルが指定されています。この表を変更することはできません。しかし、私はSUM値を取得する必要があります。 CASTも、CONVERTも機能しません。誰でも提案をお願いしますか?CAST関数またはCONVERT関数がNVARCHARで機能しない

SELECT SUM(CONVERT(INT, [Product])) 
FROM mytable 

SELECT SUM(CAST([Product] AS INT)) 
FROM mytable 

両方結果に:データ型に 'WP 4.3-CU AB CDE WINDOW ABA5000RSW' をnvarchar型の値を変換する際

メッセージ245、レベル16、状態1、行300
変換が失敗しましたint。

+2

「WP 4.3-CU AB CDE WINDOW ABA5000RSW」に何が追加されるべきだと思いますか?言い換えれば、それを整数に変換することをどのように提案すれば、あなたはそれを総計できますか? –

+0

'WP 4.3-CU AB CDE WINDOW ABA5000RSW'は整数ではありません –

+0

サンプルデータと希望の結果を表示できますか?すでに言及したように、 'WP 4.3-CU AB CDE WINDOW ABA5000RSW'は' 'INT''ではない - 決して変換されませんが、あなたの質問の文言はあなたが' SUM ) 'を返します。 'Product'は製品名のように聞こえます(これは' SUM'には意味がありません)。あなたが言及していない別のフィールドはありますか? – Siyual

答えて

0

数値製品をチェックしてみてください。

SELECT 
    SUM(CONVERT(INT, [Product])) 
FROM 
    mytable 
WHERE 
    ISNUMERIC([Product]) = 1; 
+1

悪い考え方...列に '1e4'があったか、または '$' ..または 'TRUE'を返してもINTに変換できない他の値の配列はどうでしょうか? – scsimon

3

'WP 4.3-CU AB CDE WINDOW ABA5000RSW' intに変換されません。

2012+場合は、これは、変換に失敗した文字列にNULLを返しますtry_convert(int,[Product])

を使用することができます。

関連する問題