如何从作为字符串的返回列名称中删除引号; SQL

问题描述 投票:0回答:1

我是 BIgQuery(google) 的新手,只有 1% 的经验,这就是我的情况。

UPDATE celigo.Contact.Company
SET {{data.0.propertyName}} = {{data.0.propertyValue}}
WHERE Id = {{data.0.objectId}}

我在第二行收到错误,{{data.0.propertyName}} 返回一个字符串,column_name 应该是非字符串。

样本数据:

“数据”:[ { “对象ID”:123, “变更源”:“CRM”, "属性名称": "电子邮件", "propertyValue": "样本值" }

我的目标是扭转这个局面

UPDATE celigo.Contact.Company
SET 'Email' = 'sample-value'
WHERE Id = 123

UPDATE celigo.Contact.Company
SET Email = 'sample-value'
WHERE Id = 123

如果可行的话,使用sql方法从电子邮件中删除引用

尝试在 SET 旁边使用 REPLACE SQL 方法,但没有成功

我尝试 DECLARE 一个变量,然后使用 REPLACE,但这不起作用。

sql google-bigquery
1个回答
0
投票

你试过这个吗:

DECLARE @PropertyName AS NVARCHAR(50)
DECLARE @SQL AS NVARCHAR(MAX)

SET @PropertyName = 'Email'

SET @SQL = 'UPDATE celigo.Contact.Company ' +
           'SET ' + QUOTENAME(@PropertyName) + ' = ''sample-value'' ' +
           'WHERE Id = 123'

EXEC sp_executesql @SQL

这将动态地将 {{data.0.propertyName}} 替换为 @PropertyName 的值,而不用引号括起来。

© www.soinside.com 2019 - 2024. All rights reserved.