Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server>;查询>;列名_Sql Server - Fatal编程技术网

Sql server SQL Server>;查询>;列名

Sql server SQL Server>;查询>;列名,sql-server,Sql Server,我有类似的东西 Select A.a, A.b, A.a+A.b as c, (A.a+A.b*2)+A.d as d from Table 但我想知道,如果可能的话,让它与这样的东西一起工作: Select A.a,A.b,A.a+A.b as c, (c*2)+A.d as d from Table 谢谢不,你不能那样做,但你最好的办法是使用 @pojomx: 如果不想在查询中保留计算值,可以使用计算列: 例如: create table orders ( product varchar

我有类似的东西

Select A.a, A.b, A.a+A.b as c, (A.a+A.b*2)+A.d as d from Table
但我想知道,如果可能的话,让它与这样的东西一起工作:

Select A.a,A.b,A.a+A.b as c, (c*2)+A.d as d from Table

谢谢

不,你不能那样做,但你最好的办法是使用

@pojomx:

如果不想在查询中保留计算值,可以使用计算列:

例如:

create table orders
(
product varchar(50) not null,
qty int not null,
unit_price money not null,
amount as qty * unit_price persisted
);

insert into orders(product,qty,unit_price) values('KEYBOARD',5, 20);

select * from orders;
输出:

product    qty    unit_price   amount
KEYBOARD   5      20.00        100.00

不,你不能那样做,但你最好的办法是使用

@pojomx:

如果不想在查询中保留计算值,可以使用计算列:

例如:

create table orders
(
product varchar(50) not null,
qty int not null,
unit_price money not null,
amount as qty * unit_price persisted
);

insert into orders(product,qty,unit_price) values('KEYBOARD',5, 20);

select * from orders;
输出:

product    qty    unit_price   amount
KEYBOARD   5      20.00        100.00

列别名在select的其他列中不可用。您可以使用内联视图重写:

select a, b, c, (c*2)+d as d
from (select A.a, A.b, A.a+A.b as c, A.d as d from Table A) table_alias_for_view

列别名在select的其他列中不可用。您可以使用内联视图重写:

select a, b, c, (c*2)+d as d
from (select A.a, A.b, A.a+A.b as c, A.d as d from Table A) table_alias_for_view

不在SQL Server中,您必须执行第一个示例中的操作:

Select A.a, A.b, A.a+A.b as c, (A.a+A.b*2)+A.d as d from Table
或者使用派生表,如:

SELECT
    dt.a, dt.b,dt.c, dt.c*2+dt.a as d
    FROM (Select 
              A.a, A.b, A.a+A.b as c
              from Table
         ) dt

不在SQL Server中,您必须执行第一个示例中的操作:

Select A.a, A.b, A.a+A.b as c, (A.a+A.b*2)+A.d as d from Table
或者使用派生表,如:

SELECT
    dt.a, dt.b,dt.c, dt.c*2+dt.a as d
    FROM (Select 
              A.a, A.b, A.a+A.b as c
              from Table
         ) dt

我想这是有道理的。。。列定义中不能有自引用定义…XD fail,那么,什么是计算列?x) 我想这是有道理的。。。列定义中不能有自引用定义…XD fail,那么,什么是计算列?十)