将英寸英寸的高度转换为英寸

时间:2016-02-29 15:26:53

标签: sql-server

我有一个表格,其高度以下列格式存储:示例:5' 6" ,4' 10.5",5' 3.75"如何在SQL Server中将这些转换为英寸?

2 个答案:

答案 0 :(得分:2)

首先应该做的是将高度存储为十进制而不是varchar(x)来描述以英寸为单位的高度。然后很容易得到脚和英寸(col / 12 =英尺,col%12 =英寸)。

由于你已经弄乱了你的数据,这里有一种获得正确身高的方法

试试这个:

DECLARE @t table(height varchar(15))
INSERT @t values
('5'' 6"'),
('4'' 10.5"'),
('5'' 3.75"')

SELECT 
  height,
  LEFT(height, charindex('''', height) - 1) * 12+ 
  CAST(REPLACE(STUFF(height, 1, 
    CHARINDEX(' ', height), ''), '"', '') as decimal(5,2)) inchheight
FROM @t

结果

height    inchheight
5' 6"     66.00
4' 10.5"  58.50
5' 3.75"  63.75

答案 1 :(得分:1)

使用字符串函数,例如CHARINDEXLEFTRIGHT ....

<强>查询

select height, round((t.feet + t.feet2) * 12, 2) as inch from
(
    select height,
    left(height, charindex('''', height, 1) - 1) as feet,
    cast((replace(right(height, len(height) - (charindex(' ', height, 1) - 1)), '''''', '')) as decimal(8,5)) * 0.0833333  as feet2
    from tbl_Height
)t;

这可能不是一个有效的解决方案。
但你可以用这个作为提示。