update table1 set table1.c=isnull(table1.a,'')+isnull(table1.b,'')
完美运行,实现两列合并
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,'')‘)
这行代码末尾的单引号和右括号是中文状态字符
若有帮助,请采纳~