isnull 使用缺省‘’ 在sql 中可以执行,在python中就不能运行

近期维护数据库,想把两列数据合并插入第三列,在management studio 使用

update table1 set table1.c=isnull(table1.a,'')+isnull(table1.b,'')
完美运行,实现两列合并

然后想在网站上面设置一下,在django里面views添加
         def  sum(request):
                 with connection.cursor() as cursor:  
                         cursor.execute('update table1 set table1.c=isnull(table1.a,'')+isnull(table1.b,'')‘)
                          cursor.commit()
                  return HttpResponse('平台数据更新完毕')
          结果直接报错

报错如下:
ProgrammingError('42000', '[42000] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]“)”附近有语法错误。 (102) (SQLExecDirectW)')

按道理python只是传输了一串字符给sql,为什么会有错误呢?

你仔细看你发的代码,没发现后面的代码都绿了吗
你的引号不成对,导致多括号了
当你定义的str里本身含有单引号时,请使用双引号来定义这个字符串,以免发生歧义
就算你后面那个中文单引号替换成英文,你的sql也是错的
因为你的整个str是单引号定义的,所以里面出现的''被转义了,只保留了一个引号

你确定你是直接复制的代码?如果是的话,那么

cursor.execute('update table1 set table1.c=isnull(table1.a,'')+isnull(table1.b,'')‘)
这行代码末尾的单引号和右括号是中文状态字符

若有帮助,请采纳~