2

という名前のテーブルがありますArticle。1 つの列、型の float があります。このフィールドを 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

This is a question of formatting rather than conversion. SQL Server versions before 2012 are very poor at string formatting. gbn's solution is probably the easiest to use. It would be better to do string formatting on the client side or on your reporting tool.

SQL Server 2012 adds the FORMAT function which acceps a .NET format string. The following statement returns a string formatted using both techniques, although FORMAT is far more powerful:

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 に答える