我有一个表格,其高度以下列格式存储:示例:5' 6" ,4' 10.5",5' 3.75"如何在SQL Server中将这些转换为英寸?
答案 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)
使用字符串函数,例如CHARINDEX
,LEFT
,RIGHT
....
<强>查询强>
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;
这可能不是一个有效的解决方案。
但你可以用这个作为提示。