今天在sybase中写子查询报错,说rank函数以及开窗函数不能用在子查询中。想到建临时表。
首先用了with,运行,依然报同样的错误。改用select into,运行通过。
去网上查了查,才明白,with语句只是起到一个字符串替换的作用,其本质还是相当于写子查询,只是便于书写,SQL执行时结果集不发生变化。但写select
into建立临时表,在运行时调用的是临时表的结果集,而不是执行代码。这么说来,应该用select
into的效率要比with快很多。那用with有什么优势呢?难道只用来做字符串替换?它主要用在什么地方呢?
再去找找
加载中,请稍候......