【问题标题】:trim values from left using SQL使用 SQL 从左侧修剪值
【发布时间】:2013-05-24 19:51:45
【问题描述】:

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

我有以下值:

ABC0005953

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

005953

编辑我的值是:

SELECT LEN(TABLE.VALUE)-3)

【问题讨论】:

标签: sql sql-server tsql


【解决方案1】:
SELECT RIGHT('ABC0005953', LEN('ABC0005953') - 3)

【讨论】:

    【解决方案2】:
    SELECT SUBSTRING('ABC0005953', 4, LEN('ABC0005953'))
    

    从第四个字符开始并继续。

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

    响应您的更新,我假设您的意思是要将上述内容应用于您的表:

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

    从你的另一个问题:

    我有以下几点:

    选择不同的

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

    作为 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
    

    【讨论】:

    • @PriceCheaperton:根据您的TABLE.VALUE修改答案。
    • 左 ((LEN(COLUMN.ID)-3) + COLUMNHEADER.ID + '-' + Cast(STUFFDETAIL.COLUMNLINENO as Varchar),18)
    • 我需要应用它吗?再次抱歉!
    • @PriceCheaperton:我不确定我是否理解。您正在构建一个文本值,并且想要删除..从中删除什么?
    • 我想去掉ABC0...即去掉右边的4个字符。
    【解决方案3】:

    也许你可以直接使用 right(x, len(x)-3)

    【讨论】:

      【解决方案4】:

      两种选择:

      SELECT SUBSTRING('ABC0005953', 5,7)
      
      SELECT RIGHT('ABC0005953', (LEN('ABC0005953') - 4))
      

      【讨论】:

        【解决方案5】:

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

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

        我相信这是一种比剪线更好、更通用的方法。

        【讨论】:

          猜你喜欢
          • 2012-02-14
          • 1970-01-01
          • 2019-03-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多