SQL不允许我替换SELECT语句中的引号

SQL不允许我替换SELECT语句中的引号,sql,Sql,我试图从SQL导出中的列中删除双引号“,但在研究了正确的方法后,出现了一个错误……这是我尝试过的方法之一 SELECT '293453' as custnum, REPLACE(Orders.Order_Comments, '"', '') as FULFILL1, OrderDetails.OrderID as OrderID2, etc. 由此产生的错误是: SQL无效:replace函数的参数1的参数数据类型文本无效 试试这个: select REPLACE(i

我试图从SQL导出中的列中删除双引号
,但在研究了正确的方法后,出现了一个错误……这是我尝试过的方法之一

SELECT 
   '293453' as custnum, 
   REPLACE(Orders.Order_Comments, '"', '') as FULFILL1, 
   OrderDetails.OrderID as OrderID2, etc.
由此产生的错误是:

SQL无效:replace函数的参数1的参数数据类型文本无效

试试这个:

select  REPLACE(isnull(Orders.Order_Comments,''), '"', '') as order_comments
from    orders 
试试这个:

select  REPLACE(isnull(Orders.Order_Comments,''), '"', '') as order_comments
from    orders 

您的
Orders.Order\u Comments
列的类型为。您不能对该数据类型使用REPLACE()函数。它仅适用于char/varchar/nchar/nvarchar

要解决此问题,最好的方法是更改表以使用
varchar(max)
列。无论如何,
text
类型已取消加密。但是,如果这不是一个选项,则必须在查询中强制转换它:

REPLACE(CAST(Orders.Order_Comments as varchar(max)), '"', '')

请注意,这可能非常慢。

您的
订单。订单注释列属于该类型。您不能将REPLACE()函数用于该数据类型。它仅适用于char/varchar/nchar/nvarchar

要解决此问题,最好的方法是更改表以使用
varchar(max)
列。无论如何,
text
类型已取消加密。但是,如果这不是一个选项,则必须在查询中强制转换它:

REPLACE(CAST(Orders.Order_Comments as varchar(max)), '"', '')

请注意,这可能非常缓慢。

请查看以下答案:

文本
数据类型不能与
替换
一起使用,因此需要将其强制转换为VARCHAR(MAX)


看看这个答案:

文本
数据类型不能与
替换
一起使用,因此需要将其强制转换为VARCHAR(MAX)


order\u comments
字段的数据类型是什么?我想知道如果该字段为
null
…会发生什么情况?这是什么?@prashantthakre,这是一个字符串文本:)。然后首先,您应该从您的选择中删除
'293453'作为custnum,
statement@prashantthakre不,他用字符串文字做的是很好,
order\u comments
字段的数据类型是什么?我想知道如果该字段曾经是
null
,会发生什么情况?这个“293453”是什么?@prashantthakre,这是一个字符串文本:)。然后首先你应该从你的选择中删除作为custnum的
“293453”
statement@prashantthakre不,他在拿圣·琼斯做什么环文字是完全可以的