【问题标题】:How to properly Trim values inside SQL Statement [duplicate]如何正确修剪 SQL 语句中的值 [重复]
【发布时间】:2012-05-01 16:02:05
【问题描述】:

可能重复:
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。任何帮助或正确方向的点将不胜感激。

【问题讨论】:

标签: c# asp.net sql-server


【解决方案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() 对象在一个字符串中传递这一切,但我不明白为什么如果你将命令(用分号分隔)放在一个字符串中,它会不起作用。

【讨论】:

    猜你喜欢
    • 2020-11-07
    • 2017-11-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2018-09-21
    • 1970-01-01
    相关资源
    最近更新 更多