我有一个表名Article
。它有一列,类型的浮点数。我想将此字段强制转换为nvarchar,并且还要完成8个字符。我尝试了很多东西,但不起作用。我需要你的帮助。浮动铸造用约束最大尺寸为nvarchar
ArticleNo
11536 ---> 00011536
28508 ---> 00028508
285082 ---> 00285082
28508111 --> 28508111
28508111 --> 28508111
我有一个表名Article
。它有一列,类型的浮点数。我想将此字段强制转换为nvarchar,并且还要完成8个字符。我尝试了很多东西,但不起作用。我需要你的帮助。浮动铸造用约束最大尺寸为nvarchar
ArticleNo
11536 ---> 00011536
28508 ---> 00028508
285082 ---> 00285082
28508111 --> 28508111
28508111 --> 28508111
SELECT
REPLACE(STR(MyFloatColumn, 8, 0), ' ', '0')
FROM
MyTable;
在SQL Server 2012中,您可以使用FORMAT函数来实现完整的.NET字符串格式 –
检查STR。你需要像SELECT STR([Column_Name],8,0)
你还可以用像select cast(cast(cast([Column_Name] as float) as int) as nvarchar(50))
你可以尝试:
SELECT REPLICATE('0', 8 - LEN(ArticleNo)) + CAST(ArticleNo AS NVARCHAR(8))
小数点呢? – gbn
这将失败并出现算术溢出错误28508111 –
小数点怎么样?这毕竟是浮点数 – gbn
什么SQL Server版本? –
@Panagiotis Kanavos,Ms-Sql Server 2008 – ozkank