可能重复:
Most efficient T-SQL way to pad a varchar on the left to a certain length?
我在使用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.非常感谢任何帮助或正确方向上的一点。
答案 0 :(得分: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()对象在一个字符串中传递这一切,但我不明白为什么如果你把命令用分号分隔成一个字符串就行不了。< / p>