2

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

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

4 回答 4

2
SELECT
    REPLACE(STR(MyFloatColumn, 8, 0), ' ', '0')
FROM
    MyTable;
于 2013-07-03T08:21:12.503 回答
1

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

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

SELECT ArticleNo,
       REPLACE(str(ArticleNo ,8,0),' ','0'),
       FORMAT(ArticleNo,'00000000')
FROM testtable 
于 2013-07-03T08:40:46.147 回答
0

检查STR。你需要类似的东西SELECT STR([Column_Name],8,0)

你也可以使用类似的东西select cast(cast(cast([Column_Name] as float) as int) as nvarchar(50))

于 2013-07-03T08:19:26.490 回答
0

你可以试试:

SELECT REPLICATE('0', 8 - LEN(ArticleNo))  + CAST(ArticleNo AS NVARCHAR(8))
于 2013-07-03T08:20:24.950 回答