SQL不会让我替换SELECT语句中的引用

时间:2014-08-06 20:05:47

标签: sql

我正在尝试从我的SQL导出中的列中删除双引号",并且在研究了正确的方法后我得到了一个错误...这是我尝试过的方法之一.... / p>

SELECT 
   '293453' as custnum, 
   REPLACE(Orders.Order_Comments, '"', '') as FULFILL1, 
   OrderDetails.OrderID as OrderID2, etc.

产生的错误是:

  

您的SQL无效:参数数据类型文本对替换函数的参数1无效。

3 个答案:

答案 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