【问题标题】:How to remove the first word from a large string如何从大字符串中删除第一个单词
【发布时间】:2022-01-16 15:42:04
【问题描述】:

我想从 SQL Server 的大字符串中删除第一个单词。

输入字符串:

931078027 BP 16:20:0:13 25 BAG 'B' CLASS

期望的输出:

BP 16:20:0:13 25 BAG 'B' CLASS

【问题讨论】:

  • 根据问题指南,请展示您尝试过的内容并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求

标签: sql sql-server tsql


【解决方案1】:

通过使用STUFF() 函数。

SQL

DECLARE @input VARCHAR(MAX) = '931078027 BP 16:20:0:13 25 BAG ''B'' CLASS';

SELECT @input AS input
    , STUFF(@input, 1, CHARINDEX(SPACE(1), @input), '') AS [output];

输出

+------------------------------------------+--------------------------------+
|                  input                   |             output             |
+------------------------------------------+--------------------------------+
| 931078027 BP 16:20:0:13 25 BAG 'B' CLASS | BP 16:20:0:13 25 BAG 'B' CLASS |
+------------------------------------------+--------------------------------+

【讨论】:

    【解决方案2】:

    我认为最简单的方法是使用 RIGHT 方法来获取它。

    SELECT RIGHT(ColumnName, CHARINDEX(' ', ColumnName) - 1) FROM TableName
    

    【讨论】:

      【解决方案3】:

      您可以使用子字符串操作,例如

      WITH yourTable AS (
          SELECT '931078027 BP 16:20:0:13 25 BAG ''B'' CLASS' AS val
      )
      
      SELECT val,
             SUBSTRING(val,
                       CHARINDEX(' ', val) + 1,
                       LEN(val) - CHARINDEX(' ', val)) AS val_out
      FROM yourTable;
      

      Demo

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多