我正在尝试从我的SQL导出中的列中删除双引号"
,并且在研究了正确的方法后我得到了一个错误...这是我尝试过的方法之一.... / p>
SELECT
'293453' as custnum,
REPLACE(Orders.Order_Comments, '"', '') as FULFILL1,
OrderDetails.OrderID as OrderID2, etc.
产生的错误是:
您的SQL无效:参数数据类型文本对替换函数的参数1无效。
答案 0 :(得分:4)
您的Orders.Order_Comments
列的类型为text
。您不能将REPLACE()函数与该数据类型一起使用。它只适用于char / varchar / nchar / nvarchar。
要解决此问题,最好的办法是改变表格以使用varchar(max)
列。无论如何,text
类型已被删除。但是,如果这不是一个选项,你将不得不在查询中强制转换它:
REPLACE(CAST(Orders.Order_Comments as varchar(max)), '"', '')
请注意,这可能非常慢。
答案 1 :(得分:1)
看一下这个答案:SQL Server find and replace in TEXT field
text
数据类型无法与replace
一起使用,因此您需要将其转换为VARCHAR(MAX)
REPLACE(CAST(Orders.Order_Comments AS VARCHAR(MAX)), '"', '')
答案 2 :(得分:0)
试试这个:
select REPLACE(isnull(Orders.Order_Comments,''), '"', '') as order_comments
from orders