在SQL列中添加零

时间:2017-02-14 07:31:45

标签: sql sql-server

如何在SQL列中添加零以匹配9位数?我们有一个包含产品ID的列名SystemID。我们的CRM系统会自动删除零,但有时我们需要取出这些数字并粘贴到Excel中,它需要包含所有数字。它是这样的:

ImageButton ib = (ImageButton)navigationView.findViewById(R.id.imageButton);
ib.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View view){
       //DO YOUR CODE
    }
 });

如何在6位数后添加零?

ID1111111
ID111111
ID11111

3 个答案:

答案 0 :(得分:1)

您的描述并不是很清楚,但您可能正在寻找:

DECLARE @Dummy TABLE(YourID VARCHAR(100));
INSERT INTO @Dummy VALUES('ID111111 '),('ID22222'),('ID3333')      

SELECT LEFT(STUFF(YourID + REPLICATE('0',9),7,0,REPLICATE('0',9-LEN(YourID))),9)
FROM @Dummy

结果

ID1111011
ID2222002
ID3333000

简短说明

首先我添加9个零以确保原始字符串在任何情况下都有9位数。然后我使用STUFF在第7位引入适当数量的零。最后的字符串在9处被剪切。

答案 1 :(得分:1)

DECLARE @Test TABLE(YourID VARCHAR(100));
INSERT INTO @Test VALUES('ID111111'),('ID22222'),('ID3333'),('ID'),('ID1234567')

SELECT LEFT(YourID, 6) + REPLICATE('0', 9 - LEN(YourID)) + SUBSTRING(YourID, 7, LEN(YourID))

FROM @Test

答案 2 :(得分:0)

您可以使用填充和子字符串的组合来获得所需的输出:

SELECT LEFT(SUBSTRING(SystemID, 1, 6) + '000', 15 - LEN(SystemID)) +
           SUBSTRING(SystemID, 7, LEN(SystemID) AS SystemIDPadded
FROM yourTable