将mysql查询转换为等效的sql server特定查询()
下面是MySQL查询将mysql查询转换为等效的sql server特定查询(),mysql,sql,sql-server,tsql,Mysql,Sql,Sql Server,Tsql,下面是MySQL查询 DELETE FROM ATTRIBUTE_INSTANCE WHERE ATTRIBUTE_INSTANCE.ATTRIBUTE_NAME IN ( SELECT CONCAT(ATTRIBUTE_TEMPLATE.TEMPLATE_ID,'.',ATTRIBUTE_TEMPLATE.ATTRIBUTE_NAME) FROM ATTRIBUTE_TEMPLATE, TEMP_ENTITY_TABLE WHERE ATTRIBUTE_TEMPLATE.TEMP
DELETE FROM ATTRIBUTE_INSTANCE
WHERE ATTRIBUTE_INSTANCE.ATTRIBUTE_NAME
IN
( SELECT CONCAT(ATTRIBUTE_TEMPLATE.TEMPLATE_ID,'.',ATTRIBUTE_TEMPLATE.ATTRIBUTE_NAME)
FROM ATTRIBUTE_TEMPLATE, TEMP_ENTITY_TABLE
WHERE ATTRIBUTE_TEMPLATE.TEMPLATE_ID=TEMP_ENTITY_TABLE.ENTITY_ID
);
我想将其转换为等效的sql server查询,但未能实现。你能帮帮我吗
谢谢它失败的唯一原因是因为
CONCAT
mysql函数,所以对于TSQL
使用+
而不是CONCAT
DELETE FROM ATTRIBUTE_INSTANCE
WHERE ATTRIBUTE_INSTANCE.ATTRIBUTE_NAME IN
(
SELECT ATTRIBUTE_TEMPLATE.TEMPLATE_ID + '.' + ATTRIBUTE_TEMPLATE.ATTRIBUTE_NAME
FROM ATTRIBUTE_TEMPLATE, TEMP_ENTITY_TABLE
WHERE ATTRIBUTE_TEMPLATE.TEMPLATE_ID=TEMP_ENTITY_TABLE.ENTITY_ID
)
或者,您也可以使用Join执行删除操作
DELETE a
FROM ATTRIBUTE_INSTANCE a
INNER JOIN
(
SELECT ATTRIBUTE_TEMPLATE.TEMPLATE_ID + '.' +
ATTRIBUTE_TEMPLATE.ATTRIBUTE_NAME As ColumnName
FROM ATTRIBUTE_TEMPLATE
INNER JOIN TEMP_ENTITY_TABLE
ON ATTRIBUTE_TEMPLATE.TEMPLATE_ID = TEMP_ENTITY_TABLE.ENTITY_ID
) b ON a.ATTRIBUTE_NAME = b.ColumnName
嗨,你能告诉我你在哪里挣扎吗?有人想这么做吗?示例代码更改?非常感谢,我将测试它并回复您。谢谢你帮我。