首页 > 解决方案 > 在 SQL Server 中拆分单词

问题描述

我正在检查给_定字符串中是否存在下划线 ( )。如果找到,我想将这个词分成两个值(一个值出现在下划线之前,一个值出现在下划线之后)。

DECLARE @ExpressionToSearch VARCHAR(50) 
    SET @ExpressionToSearch = 'TMS_Customers'
    IF  CHARINDEX('_', @ExpressionToSearch ) > 0 
        PRINT 'Yes it Contains'
    ELSE
        PRINT 'It doesn''t Contain'

Required output
---------------
a=TMS
b=Customers

如何拆分给定的字符串?

标签: sql-server-2008split

解决方案


捕获CHARINDEX结果并使用它来读取周围的文本_

DECLARE @ExpressionToSearch VARCHAR(50)
SET @ExpressionToSearch = 'TMS_Customers'

DECLARE @Position INT = CHARINDEX('_', @ExpressionToSearch)       

IF (@POSITION = 0) BEGIN
    PRINT 'It doesn''t Contain'
    RETURN
END

SELECT 
    LEFT(@ExpressionToSearch, @Position - 1),
    RIGHT(@ExpressionToSearch, LEN(@ExpressionToSearch) - @Position)

推荐阅读