我有一张名为Article
的表格。它有一列,类型为float。我想将此字段转换为nvarchar并完成8个字符。我尝试了很多东西,但是没有用。我需要你的帮助。
ArticleNo
11536 ---> 00011536
28508 ---> 00028508
285082 ---> 00285082
28508111 --> 28508111
28508111 --> 28508111
答案 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))