删除SQL Server中的字符串

删除SQL Server中的字符串,sql,sql-server,replace,Sql,Sql Server,Replace,在SQL Server中的我的表Products中,我有一列urlink,其值如下所示: Id UrlLink ----------------------------------- 1 domain/product1.html?7 2 domain/product2.html?34 3 domain/product294.html?6576 4 domain/product54.html?765 如何删除

在SQL Server中的我的表
Products
中,我有一列
urlink
,其值如下所示:

Id         UrlLink
-----------------------------------
1          domain/product1.html?7
2          domain/product2.html?34
3          domain/product294.html?6576
4          domain/product54.html?765
如何删除参数

?7, ?34, ?6576, ?765
从列
urlink


谢谢

使用
left
charindex
应该可以:

select left(UrlLink, charindex('?',UrlLink)-1) from Products;

这将返回第一次出现
之前的所有内容。如果urlink列中的参数不是必需的,您可能需要添加一些空检查。

使用
left
charindex
应该可以:

select left(UrlLink, charindex('?',UrlLink)-1) from Products;

这将返回第一次出现
之前的所有内容。如果参数在url链接列中不是必需的,您可能需要添加一些空检查。

您只需在url中找到
,并将字符串加上去即可。您可以使用
LEFT
/
SUBSTRING
获取子字符串,使用
CHARINDEX
在字符串中查找
。查看下面我的查询

select id, substring(urllink,1,charindex('?',urllink)-1)
from products

您只需在url中找到
,并将字符串添加到其中。您可以使用
LEFT
/
SUBSTRING
获取子字符串,使用
CHARINDEX
在字符串中查找
。查看下面我的查询

select id, substring(urllink,1,charindex('?',urllink)-1)
from products

要从表中的UrlLink列中删除查询字符串部分,需要在UPDATE语句中使用and

UPDATE Products
SET UrlLink = LEFT(UrlLink, CHARINDEX('?',UrlLink)-1)

要从表中的UrlLink列中删除查询字符串部分,需要在UPDATE语句中使用and

UPDATE Products
SET UrlLink = LEFT(UrlLink, CHARINDEX('?',UrlLink)-1)
请尝试使用以下代码:

DECLARE @myvar varchar(100);  
SET @myvar = 'domain/product1.html?7';  

SELECT REVERSE(SUBSTRING((REVERSE(@myvar)),   (CHARINDEX('?',REVERSE(@myvar))+1),500)) AS result ;  
GO  
请尝试使用以下代码:

DECLARE @myvar varchar(100);  
SET @myvar = 'domain/product1.html?7';  

SELECT REVERSE(SUBSTRING((REVERSE(@myvar)),   (CHARINDEX('?',REVERSE(@myvar))+1),500)) AS result ;  
GO  

如果有多个
符号出现在
urlink
列值中,并且如果您想在最后一个
符号之后取值,请选择。然后使用的组合

查询

SELECT
  [Id],
  SUBSTRING([UrlLink], 1, 
     LEN([UrlLink]) - CHARINDEX('?', REVERSE([UrlLink]), 1)) AS [UrlLink]
FROM [Products];

如果
UrlLink
列值中有多个
符号,并且如果要在最后一个
符号之后取值,请执行以下操作。然后使用的组合

查询

SELECT
  [Id],
  SUBSTRING([UrlLink], 1, 
     LEN([UrlLink]) - CHARINDEX('?', REVERSE([UrlLink]), 1)) AS [UrlLink]
FROM [Products];

  • 简单,如果您有一个不包含
    urlink
    ,则不会失败
  • 如果有多个
    将删除第一个
    中的所有内容,因为在URL中,这是唯一具有特殊意义的

  • 简单,如果您有一个不包含
    urlink
    ,则不会失败
  • 如果有多个
    将删除第一个
    中的所有内容,因为在URL中,这是唯一具有特殊意义的


谢谢@Colin Mackay!谢谢@Colin Mackay!