首页 > 解决方案 > 获取 SQL Server 中反斜杠后的文本

问题描述

谁能帮我写一个 SQL 查询。我只需要第一个反斜杠后的第一个数字“”请查看所需的输出。谢谢

列名 愿望输出
\2610 2610
\2610\1178_2018 烘焙客栈 2610
\2610\1178_2018 更改 Outlook\2018-03-12 AOR & Page 33 DL 2610
\995645\1178_2018 小溪巧克力 995645
\995645\1178_2018 记录请求\俱乐部和第 12 卷 995645
\995645 995645
\4323234\54724_2020 添加图片\2021-2019 详细信息打开\Checkbox-06- 值 4323234
\4323234 4323234

标签: sqlsql-servertsql

解决方案


请尝试以下解决方案。

它基于 XQuery。它的数据模型基于有序序列。正是我们需要的任务。我们可以立即获得第一个令牌,第二个令牌,最后一个令牌,序列中的任何令牌。

SQL

-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, tokens VARCHAR(MAX));
INSERT INTO @tbl (tokens) VALUES
('\2610'),
('\2610\1178_2018 Bake Inn'),
('\2610\1178_2018 Change Outlook\2018-03-12 AOR & Page 33 DL'),
('\995645\1178_2018 Creek Choc'),
('\995645\1178_2018 Record Request\Club & Volume 12'),
('\995645'),
('\4323234\54724_2020 Add Image\2021-2019 Details Open\Checkbox-06- Value'),
('\4323234');
-- DDL and sample data population, end

SELECT ID, tokens
    , c.value('(/root/r[2]/text())[1]', 'VARCHAR(20)') AS [LeadingToken]
FROM @tbl
   CROSS APPLY (SELECT TRY_CAST('<root><r><![CDATA[' + 
      REPLACE(tokens, '\', ']]></r><r><![CDATA[') + 
      ']]></r></root>' AS XML)) AS t(c);

输出

+----+-------------------------------------------------------------------------+---------------+
| ID |                                 tokens                                  | LeadingToken  |
+----+-------------------------------------------------------------------------+---------------+
|  1 | \2610                                                                   |          2610 |
|  2 | \2610\1178_2018 Bake Inn                                                |          2610 |
|  3 | \2610\1178_2018 Change Outlook\2018-03-12 AOR & Page 33 DL              |          2610 |
|  4 | \995645\1178_2018 Creek Choc                                            |        995645 |
|  5 | \995645\1178_2018 Record Request\Club & Volume 12                       |        995645 |
|  6 | \995645                                                                 |        995645 |
|  7 | \4323234\54724_2020 Add Image\2021-2019 Details Open\Checkbox-06- Value |       4323234 |
|  8 | \4323234                                                                |       4323234 |
+----+-------------------------------------------------------------------------+---------------+

推荐阅读