加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2012中LEFT OUTER JOIN的SQL语法

发布时间:2020-12-12 06:46:25 所属栏目:MsSql教程 来源:网络整理
导读:由于缺少对* =(LEFT OUTER JOIN)运算符的支持,我们遇到了SQL Server 2012的问题. 任何人都可以告诉我SQL Server 2012的正确语法是什么,以下SQL在SQL Server 2008上正常工作? SELECT t7410.name,t7408.type,t7410.length,t7410.status,t7410.prec,t7410.scale
由于缺少对* =(LEFT OUTER JOIN)运算符的支持,我们遇到了SQL Server 2012的问题.

任何人都可以告诉我SQL Server 2012的正确语法是什么,以下SQL在SQL Server 2008上正常工作?

SELECT 
    t7410.name,t7408.type,t7410.length,t7410.status,t7410.prec,t7410.scale,t7409.type 
FROM 
    dbo.syscolumns t7410,dbo.systypes t7408,dbo.sysobjects t7409,dbo.sysusers t7411,master.dbo.syslogins t7412 
WHERE 
    t7410.id = t7409.id 
    AND t7411.uid = t7409.uid 
    AND t7409.name = 'GENERAL'
    AND t7409.type IN ('U','S','V') 
    AND t7410.usertype *= t7408.usertype 
    AND t7412.sid = t7411.sid 
    AND t7412.name = user_name() 
ORDER BY 
    t7410.colid ASC

解决方法

为什么不使用ANSI JOIN语法编写它:
SELECT t7410.name,t7409.type 
FROM dbo.syscolumns t7410
INNER JOIN dbo.sysobjects t7409
    ON t7410.id = t7409.id
INNER JOIN dbo.sysusers t7411
    ON t7411.uid = t7409.uid 
INNER JOIN master.dbo.syslogins t7412 
    ON t7412.sid = t7411.sid 
LEFT JOIN dbo.systypes t7408
    ON t7410.usertype = t7408.usertype 
WHERE t7409.name = 'GENERAL'
    AND t7409.type IN ('U','V') 
    AND t7412.name = user_name() 
ORDER BY t7410.colid ASC

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读