【问题标题】:SQL split based on delimeter, keep only second elementSQL基于分隔符拆分,只保留第二个元素
【发布时间】:2015-11-04 04:54:15
【问题描述】:

我有 T-SQL 代码,正在研究如何拆分

Aruba\abc
Spain\defg
New Zealand\qwerty
Antartica\sporty

使得列输出

abc
defg
qwerty
sporty

到目前为止,我发现了类似的东西,

http://www.aspsnippets.com/Articles/Split-function-in-SQL-Server-Example-Function-to-Split-Comma-separated-Delimited-string-in-SQL-Server-2005-2008-and-2012.aspx

但它会根据分隔符将列拆分为新列。

我希望保留分隔符后的信息\

请指教

【问题讨论】:

  • 查看字符索引和子字符串

标签: sql-server string split delimiter


【解决方案1】:
SELECT RIGHT(ColName , LEN(ColName) - CHARINDEX('\', ColName) )
FROM TABLEName

SELECT PARSENAME(REPLACE(ColName , '\' , '.'),1)
FROM TableName

【讨论】:

  • @m-ali 我喜欢PARSENAME
  • 在 PARSENAME(REPLACE(ColName , '\' , '.'),1) 中,'.' 作为替换函数的第三个参数到底有什么用?
【解决方案2】:

如果你把它作为一个变量的例子:

DECLARE @str VARCHAR(50) = 'aruba\abc'

SELECT SUBSTRING(@str,CHARINDEX('\', @str)+1, LEN(@str) - CHARINDEX('\', @str) )

如果您在表格示例中有它:

SELECT SUBSTRING(column1,CHARINDEX('\', column1)+1, LEN(column1) - CHARINDEX('\', column1) )
FROM table1

这是一个工作的 sqlfiddle:http://sqlfiddle.com/#!6/85de5/1

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 2021-07-14
    • 2014-07-22
    • 1970-01-01
    • 2019-05-11
    • 2018-01-02
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    相关资源
    最近更新 更多