使用约束最大大小浮动到nvarchar

时间:2013-07-03 08:16:47

标签: sql sql-server database

我有一张名为Article的表格。它有一列,类型为float。我想将此字段转换为nvarchar并完成8个字符。我尝试了很多东西,但是没有用。我需要你的帮助。

ArticleNo 
11536   ---> 00011536
28508   ---> 00028508
285082  ---> 00285082
28508111 --> 28508111
28508111 --> 28508111

4 个答案:

答案 0 :(得分:2)

SELECT
    REPLACE(STR(MyFloatColumn, 8, 0), ' ', '0')
FROM
    MyTable;

答案 1 :(得分:1)

这是格式化而非转换的问题。 2012年之前的SQL Server版本在字符串格式化方面非常差。 gbn's解决方案可能是最容易使用的解决方案。最好在客户端或报表工具上进行字符串格式化。

SQL Server 2012添加了加入.NET格式字符串的FORMAT函数。以下语句返回使用这两种技术格式化的字符串,尽管FORMAT功能更强大:

SELECT ArticleNo,
       REPLACE(str(ArticleNo ,8,0),' ','0'),
       FORMAT(ArticleNo,'00000000')
FROM testtable 

答案 2 :(得分:0)

检查STR。您需要SELECT STR([Column_Name],8,0)

之类的内容

您还可以使用select cast(cast(cast([Column_Name] as float) as int) as nvarchar(50))

之类的内容

答案 3 :(得分:0)

你可以尝试:

SELECT REPLICATE('0', 8 - LEN(ArticleNo))  + CAST(ArticleNo AS NVARCHAR(8))