如何从列值中删除[]和“”

时间:2019-04-22 20:55:56

标签: sql sql-server

我有像这样的列之一的行值[“ 576373”]。如何只能选择576373

3 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点。一种有趣的方法是使用PARSENAME函数。

SELECT PARSENAME( PARSENAME( '["576373"]', 1), 1);

您还可以使用嵌套的REPLACE函数。这是两个选项的比较。

SELECT PARSENAME( PARSENAME( SomeString, 1), 1),
       REPLACE( REPLACE( REPLACE( SomeString, '[', ''), ']', ''), '"', '')
FROM (VALUES('["576373"]'), ('[57637]'), ('"76373"'))x(SomeString);

答案 1 :(得分:0)

如果您需要从一列中的值中删除方括号和引号(如上述问题所示),则可以使用几种方法。以下是根据不同情况的一些信息:

  1. 数据始终包含[​​“和”]字符。在这种情况下,SUBSTRING将返回您最需要的数据:

在这种情况下,请使用以下代码:

-- This simply removes those first two and last two characters.
SELECT SUBSTRING(MyColumnName, 3, Len(MyColumnName) - 4) as FinalValue
  1. 数据可以包括引号和方括号的任意组合-可以为“ 12345”或[12345]或[“ 12345”]。为此,简单的SUBSTRING效率低下,因为您需要确定要删除的字符数。在这种情况下,最好使用REPLACE

在这种情况下,请使用以下代码:

SELECT REPLACE(REPLACE(REPLACE(MyColumnName, '"', ''), ']', ''), '[', '') as FinalValue

答案 2 :(得分:0)

SELECT (replace(replace(replace([fieldName],'[',''),']',''),'"','')) FROM [tableName]