にデータ型varchar型の変換:SQLクエリ - 私はSQLクエリでの価格設定を変換する問題を持っている数値
CASE CAST(R.Price AS decimal(10,2))
WHEN 'NULL'
THEN '0'
END AS 'PricePoint',
は残念ながら、それはこのエラーがスローされます。助けを
Error converting data type varchar to numeric.
感謝を。
にデータ型varchar型の変換:SQLクエリ - 私はSQLクエリでの価格設定を変換する問題を持っている数値
CASE CAST(R.Price AS decimal(10,2))
WHEN 'NULL'
THEN '0'
END AS 'PricePoint',
は残念ながら、それはこのエラーがスローされます。助けを
Error converting data type varchar to numeric.
感謝を。
VarcharとしてNULLを比較しているため、エラーが発生しています。
これはSQL Serverののためであれば、あなたはIS NULL
チェック(とない「ノーマル」等価演算子)を使用するには、このコードを使用する必要があります
CASE CAST(R.Price AS decimal(10,2)) WHEN NULL THEN '0'END AS 'PricePoint',
どちらもうまくいかない...... –
あなたが達成しようとしていることを教えてください。そうすれば、あなたを助けてくれるでしょう。 –
このアプローチを使うと、普通の等価演算子 'CAST(...)= NULL'を使って' CAST(...) '式を' NULL'と比較しますが、 'NULL'は**常に**偽で動作しません –
以下のクエリを使用します。
CASE
WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
THEN '0'
END AS 'PricePoint',
を
の値を0
に戻したい場合は、値を一重引用符で囲むことをもう一度忘れてください引用符は、(代わりにint
の)文字列値を返している:
CASE
WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
THEN 0
END AS 'PricePoint',
更新:をあなたがNULL
ではありません何のための定期的な価格を返すようにしたい場合は、あなたのCASE
にELSE
句を追加します。
CASE
WHEN CAST(R.Price AS decimal(10, 2)) IS NULL
THEN 0
ELSE CAST(R.Price AS decimal(10, 2))
END AS 'PricePoint',
しかし、私はクエリの原因を追加すると、他の価格はnullになる たとえば、1、0.5 ...のようなpricePointの他の値は、クエリに追加した後にnullになります。 –
これはどのRDBMSですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –
これが** SQL Server **の場合、 - NULLの場合は、次のようにチェックを変更する必要があります: 'CAST(...)IS NULL THEN:.....' - まず第一に** 'NULL'の周りに一重引用符を入れないでください。次に' IS NULL'を使う必要があります - あなたは 'NULL'を扱うときに通常の等価チェックを使うことはできません –
解決策を探しているDBMSも提供してくださいPricePoint列からのサンプルデータとして取得します。 –