sql联合查询|sql交叉查询|除非同时指定了 TOP否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。

  • select * from (
    select shengname,id as sid,1 as ord from szsheng
    union all
    select shiname,shengid,2 as ord from szshi) a
    order by a.sid asc,ord asc

    就可以得到以上结果,但是直接用这个语句手工在T-SQL中建立视图时去没有用提示
    除非同时指定了 TOP否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。

    直接把这个语句放到企业管理器里让它来修正错误,正确的写法是这样
    SELECT TOP 100 PERCENT *
    FROM (SELECT shengname, id AS sid, 1 AS ord
            FROM szsheng
            UNION
            SELECT shiname, shengid, 2 AS ord
            FROM szshi) a
    ORDER BY sid, ord

    以下是表结构和期望结果

     

    表1
    1   北京
    2   上海
    3   广东

    表2
    1  北京区1
    2  北京区2
    3  上海区1
    4  上海区2
    5  广州
    6  深圳

    然后希望查询结果是这样
    北京
    北京区1
    北京区2
    上海
    上海区1
    上海区2
    广东
    广州
    深圳

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值