【问题标题】:SQL error: An expression of non-boolean type specified in a context where a condition is expected, near ')'SQL 错误:在预期条件的上下文中指定的非布尔类型的表达式,靠近 ')'
【发布时间】:2017-07-03 13:12:18
【问题描述】:

我是 SQL 新手,无法使用它:

select z.[zip] as [ZIP],
z.[city] as [City],
z.[state] as [State],
z.[county] as [County],
lp.[value] as [Geomarket Short],
lp2.[value] as [Geomarket Long]
from world.dbo.[zip] z
left outer join [lookup.prompt] lp on (lp.[index] = z.[zip]) and (lp.[key] = 
'geomarket_zip')
left outer join [lookup.prompt] lp2 on (lp.[value] = lp2.[index]) and (lp2.
[key] = 'geomarket')
order by z.[zip]

我收到此错误:

ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了 TOP、OFFSET 或 FOR XML。

当我删除 order by 子句时,我收到此错误:

在预期条件的上下文中指定的非布尔类型表达式,靠近 ')'。

【问题讨论】:

  • 去掉括号 - 加入时不需要它们
  • 这是您的全部查询吗?我怀疑还有更多
  • 个人建议:尝试格式化您的 SQL 语句 看看sqlstyle.guide 正确格式化的 SQL 语句可以让您和您的伙伴更轻松地排除故障和所有进一步的更改
  • 您好,欢迎来到 Stack Overflow,请花点时间通过 welcome tour 了解您在此处的方式(并获得您的第一个徽章),阅读如何创建 Minimal, Complete, and Verifiable example并检查How to Ask Good Questions,这样您就有机会获得反馈和有用的答案。

标签: sql sql-server tsql


【解决方案1】:
SELECT  z.zip AS [ZIP] ,
        z.city AS [City] ,
        z.state AS [State] ,
        z.county AS [County] ,
        lp.value AS [Geomarket Short] ,
        lp2.value AS [Geomarket Long]
FROM    world.dbo.zip z
        LEFT OUTER JOIN [lookup.prompt] lp ON lp.index = z.zip
                                              AND lp.key = 'geomarket_zip'
        LEFT OUTER JOIN [lookup.prompt] lp2 ON lp.value = lp2.index
                                               AND lp2.key = 'geomarket'
ORDER BY z.zip;

【讨论】:

    猜你喜欢
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多