という名前のテーブルがありますArticle
。1 つの列、型の float があります。このフィールドを nvarchar にキャストし、8 文字を完成させたいと思います。私は多くのことを試みましたが、うまくいきません。あなたの助けが必要です。
ArticleNo
11536 ---> 00011536
28508 ---> 00028508
285082 ---> 00285082
28508111 --> 28508111
28508111 --> 28508111
という名前のテーブルがありますArticle
。1 つの列、型の float があります。このフィールドを nvarchar にキャストし、8 文字を完成させたいと思います。私は多くのことを試みましたが、うまくいきません。あなたの助けが必要です。
ArticleNo
11536 ---> 00011536
28508 ---> 00028508
285082 ---> 00285082
28508111 --> 28508111
28508111 --> 28508111
SELECT
REPLACE(STR(MyFloatColumn, 8, 0), ' ', '0')
FROM
MyTable;
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
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))