相关疑难解决方法(0)

在查询中早期(或重新排序)重用派生列 - 这是有效的ANSI SQL吗?

这是有效的ANSI SQL吗?:

SELECT 1 AS X
       ,2 * X AS Y
       ,3 * Y AS Z
Run Code Online (Sandbox Code Playgroud)

因为Teradata(12)可以做到这一点,以及这个(是的,疯了不是它):

SELECT 3 * Y AS Z
       ,2 * X AS Y
       ,1 AS X
Run Code Online (Sandbox Code Playgroud)

但是SQL Server 2005需要这样的东西:

SELECT  X
       ,Y
       ,3 * Y AS Z
FROM    (
         SELECT X
               ,2 * X AS Y
         FROM   (
                 SELECT 1 AS X
                ) AS X
        ) AS Y
Run Code Online (Sandbox Code Playgroud)

sql sql-server teradata ansi-sql

6
推荐指数
1
解决办法
369
查看次数

使用同一记录中的值进行SQL更新

在以下语句中,将f1始终获得f2以前的值?或者f2有时会先更新并f1最终结束NULL?我的印象是声明中的新值不可用,f2在处理记录时具有旧值,但我找不到一个说明这一点的权威位置.

UPDATE x
SET
    x.f1 = x.f2,
    x.f2 = NULL
Run Code Online (Sandbox Code Playgroud)

sql sql-server

6
推荐指数
1
解决办法
2872
查看次数

标签 统计

sql ×2

sql-server ×2

ansi-sql ×1

teradata ×1