CTEを使用して週間のデータを比較するクエリがあります。それが格納するものの1つはパーセンテージデータです。私は100.00に等しい値を変換またはキャストしようとしています。例えば特定の値が見つかったときにdecimalをintとしてキャスト
は、ここでの結果は、私はいくつかのケース文を試してみましたが、私は私が探しています結果を得ることはありません100からゼロさんを削除するには期待しています
Name Percentage Other
App1 99.56 5.5
App2 100.00 6
どのように見えるかです。ここに私が今いるものがあります。
SELECT
f.Application,
f.Percentage,
f.Other,
CASE
WHEN f.Percentage = 100.00
THEN 100
END AS Percentage
FROM Table1 f
現在、100.00の値は100に変更されています。ただし、100.00以外の値はすべてゼロになります。
ELSE f.Percentage
ただし、100.00は変更されません。
ご協力いただければ幸いです。
SQLフィールド/列ことはできません
の例では、このようなものになるだろう'float/decimal'の値を持つレコードと' int'のレコードを持つことはできません。私の知る限りでは(このサイトにはSQLよりもはるかに多くの人がいますが)、文字列型( 'nvarchar'など)では小数点と整数の両方の値を扱うことができますが、データはもちろん、文字列値として返されます。 – Santi
このクエリは何を消費していますか?余分な「.00」はなぜ問題なのですか?これは、表示コードで処理できる(そうすべき)ようなものです。 – Blorgbeard
CAST-ingデータ型と出力文字列の書式設定を混同しています。後で必要です。列は常に同じデータ型を持たなければならず、1つの行に対して1つのデータ型を持ち、次の行に異なるデータ型を持つことはできません。 – RBarryYoung