MySQL 到 Microsoft SQL Server 派生表语法
Posted
技术标签:
【中文标题】MySQL 到 Microsoft SQL Server 派生表语法【英文标题】:MySQL to Microsoft SQL Server derived table syntax 【发布时间】:2020-07-03 02:26:53 【问题描述】:我正在尝试从 FROM 语句中创建的派生表中选择数据。 我在 mysql 中有以下代码:
SELECT TEMP.State, TEMP.Name
FROM (SELECT DISTINCT STATE.State, PRODUCT.Name, PRODUCT.Price
FROM STATE
JOIN PRODUCT) AS TEMP
我正在尝试在 Microsoft SQL Server 中执行相同的操作,但这不起作用,并出现错误“语法不正确”。我尝试了几种不同的组合,我能找到的任何东西都表明这应该有效。 感谢所有帮助!
【问题讨论】:
在SQL Server中加入时,需要加入“ON”的东西。 缺少连接条件 【参考方案1】:您当前的 MySQL 子查询似乎是一个交叉连接,因为它是一个没有任何ON
子句的内连接。 SQL Server 不支持这种语法,如果你真的想在这里使用交叉连接,那么使用:
SELECT
TEMP.State,
TEMP.Name
FROM
(
SELECT DISTINCT STATE.State, PRODUCT.Name, PRODUCT.Price
FROM STATE
CROSS JOIN PRODUCT
) AS TEMP;
话虽如此,我认为这两个数据库都没有子查询的原因,只需使用:
SELECT DISTINCT s.State, p.Name
FROM STATE s
CROSS JOIN PRODUCT p;
【讨论】:
以上是关于MySQL 到 Microsoft SQL Server 派生表语法的主要内容,如果未能解决你的问题,请参考以下文章
C# Mysql You have an error in your SQL syntax; check the manual that corresponds to your MySQL ser
同样的sql在mysql运行没有问题,在oracle会报不是group by表达式的错
在 Microsoft SQL Server 2005 中模拟 group_concat MySQL 函数?