在SQL表中有一个ncarchar(MAX)字段。它有717.08064182582,39.0676048113等数字,其中我需要在小数点后只有3个位置。例如717.080,39.067。
如果不转换字段类型,想要删除最后n个字符,但每行都有不同的字符数。我相信我可以使用ROUND(如果错误则纠正我),但不愿意。
答案 0 :(得分:1)
试试这个
SELECT CAST(ColumnName AS DECIMAL(18,3))
不转换数据类型按 @vkp 评论
SELECT SUBSTRING(ColumnName ,0,CHARINDEX('.', ColumnName )+4)
答案 1 :(得分:1)
select CASE WHEN CHARINDEX('.', Your_column) > 0
THEN SUBSTRING(Your_column, 1, CHARINDEX('.', Your_column) + 3)
ELSE Your_column
END
这与之前的答案类似,但更快更安全
答案 2 :(得分:0)
试试这个:
SELECT SUBSTRING(Your_column, 1, PATINDEX('%.%', Your_column) + 3)
FROM Your_Table