如何在将 SQL 字符串输入列之前或之后从中删除引号 (")?

How do I remove a quote(") from SQL string before or after inputting it into a column?

我在一列中拆分了一个姓名值,以便在另一列中提供名字和姓氏。有时我会在某人姓名的前面或开头看到引号 (")。如何删除该引号?

我尝试了一些实用的方法,但它在@fname 和@lname 的设置命令中返回了错误。

  DECLARE @fname VARCHAR(100)
  DECLARE @lname VARCHAR(100)
  DECLARE @recnum as INT
  DECLARE @i as int
  SELECT @recnum = count(*) FROM dbo.medcor_weeklywire
  SET @i = 1
  WHILE @i <=@recnum
  BEGIN

  SELECT @fname = LTRIM(jw_employee_fname) where [sysid] = @i
  SELECT @lname = LTRIM(jw_employee_lname) where [sysid] = @i
  SET @fname = SELECT REPLACE(@fname,'"','')
  SET @lname = SELECT REPLACE(@lname,'"','')
  update [medcor_weeklywire]
  SET [jw_employee_fname] = @fname, [jw_employee_lname] = @lname

  END

要么从第二个语句中取出 SELECT

SET @fname = REPLACE(@fname,'"','')

或者将它们合并为一个 SELECT:

SELECT @fname = REPLACE(LTRIM(jw_employee_fname),'"','') where [sysid] = @i

好吧,首先迈克尔,你的 Select 陈述是错误的。第二个你和白痴 LOL

  DECLARE @fname VARCHAR(100)
  DECLARE @lname VARCHAR(100)
  DECLARE @recnum as INT
  DECLARE @i as int
  SELECT @recnum = count(*) FROM dbo.medcor_weeklywire
  SET @i = 1
  WHILE @i <=@recnum
  BEGIN

  SELECT @fname = LTRIM(jw_employee_fname) from medcor_weeklywire where [sysid] = @i
  SELECT @lname = LTRIM(jw_employee_lname) from medcor_weeklywire where [sysid] = @i

  update [medcor_weeklywire]

  SET [jw_employee_fname] = REPLACE([jw_employee_fname], '"',''), [jw_employee_lname] = REPLACE([jw_employee_lname],'"','')
  END

我建议您重新开始,不要使用需要很长时间的循环...