0

可能重复:
最有效的 T-SQL 方法将左侧的 varchar 填充到一定长度?

我在使用 sql 语句进行语法修剪时遇到了一些问题。这是我失败的 sql 语句:

 SqlCommand command = new SqlCommand("SELECT PID = TRIM([PID] & Right("00000000" & TRIM ([PID]),8) & ",END"), FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID",con);

如您所见,我一直在到处进行试验,但在我删除我的 SQL 语句之前,我返回的值是:

 123456123456123456

我想退货:

 00123456,00123456,00123456,END

那么用逗号分隔值,在语句末尾添加一个单词并将值排序为某种格式的正确语法是什么。例如,数字应全部为 8 位。返回是 00000123 还是 01234567。任何帮助或正确方向的点将不胜感激。

4

1 回答 1

1

适用于此的 SQL 是

DECLARE @pidList VARCHAR(2000);

SELECT @pidList = COALESCE(@pidList + ',', '') + REPLICATE('0', 8 - DATALENGTH(MDRMASTER.PID)) + MDRMASTER.PID
FROM dbo.MDRMASTER
WHERE MDRMASTER.PARENTPID = @PARENTPID;

SELECT @pidList + ',END' AS PID;

不幸的是,我无法测试通过 SqlCommand() 对象将所有这些都传递到一个字符串中,但我不明白为什么如果您将命令(用分号分隔)放入一个字符串中它会不起作用。

于 2012-05-01T17:01:23.290 回答