我在这个数据库中有一个字段存储数字,如下所示:
- 80 1/4
- 20 1/8
- 20
- 16 年 15 月 36 日
- 44 1/8
- 93 7/8
- 89 1/8
我正在尝试将这些转换为完整的小数,以便我可以将它们相加。我一直在尝试通过从数字中提取小数,将其转换为小数,然后将其添加到整数来做到这一点。我在提取分子时遇到了一些重大问题。分母已使用以下方法提取:
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 问题,因为它似乎没有做任何事情,或者更有可能是我的代码搞砸了。
有人有想法么?
谢谢!