Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除SQL字符串中某个单词后的所有内容_Sql_Sql Server - Fatal编程技术网

删除SQL字符串中某个单词后的所有内容

删除SQL字符串中某个单词后的所有内容,sql,sql-server,Sql,Sql Server,我发现一些语句删除了某个字符后的所有内容。如何删除一个单词后的所有内容,即使该单词后的长度可能有所不同 11000 PLACIDA RD BLDG 15 UNIT 1504 17200 ACAPULCO RD BLDG 1 我想删除BLDG之后的所有内容您可以使用它来查找字符串在另一个字符串中的位置: CHARINDEX('BLDG', ColumnName) 然后使用仅获取到该点的所有内容: SELECT LEFT(ColumnName, CHARINDEX('BLDG', ColumnN

我发现一些语句删除了某个字符后的所有内容。如何删除一个单词后的所有内容,即使该单词后的长度可能有所不同

11000 PLACIDA RD BLDG 15 UNIT 1504
17200 ACAPULCO RD BLDG 1
我想删除BLDG之后的所有内容

您可以使用它来查找字符串在另一个字符串中的位置:

CHARINDEX('BLDG', ColumnName)
然后使用仅获取到该点的所有内容:

SELECT LEFT(ColumnName, CHARINDEX('BLDG', ColumnName))
FROM Table
最后,由于您希望包含
BLDG
文本,因此需要在位置上添加3(即字符串-1的长度):

如果您还想删除
BLDG
字,则减去1:

SELECT LEFT(ColumnName, CHARINDEX('BLDG', ColumnName)-1)
FROM Table
可以使用查找字符串在另一个字符串中的位置:

CHARINDEX('BLDG', ColumnName)
然后使用仅获取到该点的所有内容:

SELECT LEFT(ColumnName, CHARINDEX('BLDG', ColumnName))
FROM Table
最后,由于您希望包含
BLDG
文本,因此需要在位置上添加3(即字符串-1的长度):

如果您还想删除
BLDG
字,则减去1:

SELECT LEFT(ColumnName, CHARINDEX('BLDG', ColumnName)-1)
FROM Table
这对我有用

CREATE TABLE #DeleteString ( AddressB4 VARCHAR(255) );

INSERT  INTO #DeleteString
        ( AddressB4 )
VALUES  ( '11000 PLACIDA RD BLDG 15 UNIT 1504'  -- AddressB4 - varchar(255)
          ),
        ( '17200 ACAPULCO RD BLDG 1'  -- AddressB4 - varchar(255)
          );
DECLARE @SearchStrng VARCHAR(255)= 'BLDG';
SELECT  REPLACE(AddressB4,
                SUBSTRING(AddressB4,
                          CHARINDEX(@SearchStrng, AddressB4)
                          + LEN(@SearchStrng), LEN(AddressB4)), '') AS FilteredAddress
FROM    #DeleteString;
这对我很有效

CREATE TABLE #DeleteString ( AddressB4 VARCHAR(255) );

INSERT  INTO #DeleteString
        ( AddressB4 )
VALUES  ( '11000 PLACIDA RD BLDG 15 UNIT 1504'  -- AddressB4 - varchar(255)
          ),
        ( '17200 ACAPULCO RD BLDG 1'  -- AddressB4 - varchar(255)
          );
DECLARE @SearchStrng VARCHAR(255)= 'BLDG';
SELECT  REPLACE(AddressB4,
                SUBSTRING(AddressB4,
                          CHARINDEX(@SearchStrng, AddressB4)
                          + LEN(@SearchStrng), LEN(AddressB4)), '') AS FilteredAddress
FROM    #DeleteString;

整个专栏的数据都是这样的不是真的,我有超过700万个独特的地址。我正试图删除建筑/单元/公寓号码你昨天发布的问题不是几乎完全一样吗@这是一个相似但不同的问题。是的,但我没有收到那么多的反馈或帮助。谢谢你的帮助,guysis整个专栏的数据都是这样的不是真的,我有超过700万个独特的地址。我正试图删除建筑/单元/公寓号码你昨天发布的问题不是几乎完全一样吗@这是一个相似但不同的问题。是的,但我没有收到那么多的反馈或帮助。谢谢你们的帮助