使用SQL修剪左边的值

时间:2013-05-29 13:54:02

标签: sql sql-server tsql

我想在SQL值中修剪左边的字符:

我有以下价值:

ABC0005953

如何从左侧修剪3个字符的值?我想看看:

005953

编辑我的值是:

SELECT LEN(TABLE.VALUE)-3)

5 个答案:

答案 0 :(得分:3)

SELECT SUBSTRING('ABC0005953', 4, LEN('ABC0005953'))

从第四个角色开始继续。

(仅发布作为RIGHT(...)解决方案的替代方案。)

为了回应您的更新,我认为您的意思是要将上述内容应用到您的表格中:

SELECT SUBSTRING(TABLE.VALUE, 4, LEN(TABLE.VALUE))
FROM TABLE

来自您的其他问题:

  

我有以下内容:

     

SELECT DISTINCT

     

左(GIFTHEADER.pID + GIFTHEADER.PID +' - '+ Cast(PAYMENTDETAIL.PLI​​NENO as Varchar),18)

     

AS TRANSACTIONREF ......

     

目前我的价值如下:

     

ABC0005953ABC0005953

     

我想简单地从GIFTHEADER.pID

中删除前4个字符

如果你想删除GIFTHEADER.pID中的前四个字符,我建议在将值放入组合字符串之前删除它们:

SELECT DISTINCT
    LEFT(SUBSTRING(GIFTHEADER.pID, 5, LEN(GIFTHEADER.pID) +
        GIFTHEADER.PID +
        '-' +
        Cast(PAYMENTDETAIL.PLINENO as Varchar),18)
    AS TRANSACTIONREF

答案 1 :(得分:2)

您可以使用STUFF函数将字符1到3替换为空字符串

SELECT STUFF('ABC0005953',1,3,'')

我认为这比切割字符串更好,更普遍。

答案 2 :(得分:1)

SELECT RIGHT('ABC0005953', LEN('ABC0005953') - 3)

答案 3 :(得分:0)

也许你可以使用正确的(x,len(x)-3)

答案 4 :(得分:0)

有两种选择:

SELECT SUBSTRING('ABC0005953', 5,7)

SELECT RIGHT('ABC0005953', (LEN('ABC0005953') - 4))