Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 server SQL Server-从varchar中删除HTML标记_Sql Server - Fatal编程技术网

Sql server SQL Server-从varchar中删除HTML标记

Sql server SQL Server-从varchar中删除HTML标记,sql-server,Sql Server,我知道这里有一些类似的话题,但我找不到与我的问题相关的,这就是: 我有一个带有ID列和QRCode列的表。每次添加项目时,主键自动递增。QRCode将按如下方式扫描: 我希望能够从字符串中删除,我知道如何在C中执行此操作,但是我不确定如何在Sql Server中执行此操作。任何指导都很好,谢谢 常规格式如下所示,并在下面的示例中使用 "http://somewebsite.com/12345/456564654" "http://somewebsite.com/12345/989886765"

我知道这里有一些类似的话题,但我找不到与我的问题相关的,这就是:

我有一个带有ID列和QRCode列的表。每次添加项目时,主键自动递增。QRCode将按如下方式扫描:

我希望能够从字符串中删除,我知道如何在C中执行此操作,但是我不确定如何在Sql Server中执行此操作。任何指导都很好,谢谢

常规格式如下所示,并在下面的示例中使用

"http://somewebsite.com/12345/456564654"
"http://somewebsite.com/12345/989886765"
"http://somewebsite.com/12346/987654321"
查询返回以下结果:

SELECT 
REPLACE
(
    REPLACE(QRCode, 'http://somewebsite.com/', '')
    ,'/', ' '
) AS QRCode
FROM 
QRTable 
WHERE 
QRCode LIKE '%http://somewebsite.com/%'
123454564654 12345 989886765 12346987654321


现在我需要用这些新结果更新表,但是由于有3个结果,我得到错误消息子查询返回了超过1个值。是否有方法将表中的选定值替换为基于主键字段存在的值?

**已删除上一示例

根据您更新的问题提供更完整的答案。这将删除URL的第一部分以及尾随的/以便获得所需的输出

DECLARE @Variable VARCHAR(50)
SET @Variable = 'http://somewebsite.com/12345/456564654'
SET @Variable =
    REPLACE
    (
        REPLACE(@Variable, 'http://somewebsite.com/', '')
        ,'/', ' '
    )
PRINT @Variable 
输出=123456564654

查看您的SQL语句,您希望:

SELECT 
    REPLACE
    (
        REPLACE(QRCode, 'http://somewebsite.com/', '')
        ,'/', ' '
    ) AS QRCode
FROM 
    QRTable 
WHERE 
    QRCode LIKE '%http://somewebsite.com/%'

但是如何检测字符串中的部分,使其不重命名列中的所有值呢?在这种情况下,更好的示例可能是:选择replaceQRCode,'http://somewebsite.com/'作为LocalPath,表where条件中的其他列。同样值得注意的是,它不会替换整个字符串:它类似于string.replace。但是它是否总是somewebsite.com/或者它也可以是另一个website.com?因为这样做是行不通的。根据他们的问题,这是或者至少是给人这样的印象。显然,上面的例子没有处理要替换的不同URL,但是OP没有请求它。总是一些网站。。。。虽然如果可能的话,在“http”和final/之间实现通用性将非常好。当我尝试设置变量时,上面的答案返回了这个错误:必须声明标量变量@Varaible。你能给QRCodefield更多的例子吗?它会是url/numbers/numbers这样的常规格式吗?SELECT*通常是一种不好的做法,可能还需要显式地选择列。update语句是什么样子的?