如何在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
答案 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