このデータベースには、次のような数値を格納するフィールドがあります。
- 80 1/4
- 20 1/8
- 20
- 36 15/16
- 44 1/8
- 93 7/8
- 89 1/8
これらを合計できるように完全な 10 進数に変換しようとしています。数値から分数を抽出し、それを小数に変換してから、それを整数に追加することで、これを実行しようとしています。分子を抽出する際にいくつかの大きな問題がありました。分母は、次を使用して抽出されています。
CASE WHEN CHARINDEX('/',Fraction) > 0 THEN RIGHT(Faction,(LEN(Fraction) - (CHARINDEX('/',Fraction)))) ELSE NULL END AS [Denominator]
それが最も効率的な方法かどうかはわかりませんが、うまくいくようです。
この方法を使用して分子を引き出そうとしました:
CASE WHEN Charindex('/', Fraction) > 0 THEN LEFT(RIGHT(Fraction, Len(Fraction) - Charindex(' ',Fraction)), CHARINDEX('/',Fraction) - 1) ELSE NULL END AS [Numerator]
しかし、それは私に分数そのものを与えるだけです。SQL が LEFT 内の RIGHT に問題があるかどうかはわかりません。何もしていないように見えるか、コードがめちゃくちゃになっている可能性が高いからです。
誰にもアイデアはありますか?
ありがとう!