Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 行号和行号;隔断_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 行号和行号;隔断

Sql 行号和行号;隔断,sql,sql-server,tsql,Sql,Sql Server,Tsql,我试图使用分区上的行数来清空某些值,除非有人能提出更好的方法,否则我的数据如下所示 create table Emp_Details ( Emp_Name varchar(10) , Company varchar(15) ,Qty int ,LineOrderCost money ,OrderUnitCost money ,ExtraCost money ,ExtraDesc varchar(5) ) insert into Emp_Details (Emp_Name, Company,

我试图使用分区上的
行数
来清空某些值,除非有人能提出更好的方法,否则我的数据如下所示

create table Emp_Details
(  Emp_Name varchar(10)
, Company varchar(15)
,Qty int
,LineOrderCost money
,OrderUnitCost money
,ExtraCost money
,ExtraDesc varchar(5)
) 

insert into Emp_Details (Emp_Name, Company, Qty, LineOrderCost, OrderUnitCost, ExtraCost, ExtraDesc)
values 
('John', 'PStock', 1, '2.50','3.50', '7.50', 'ABC')
,('John', 'PStock', 1, '2.50','3.50', '7.50', 'DEF')
我要做的是返回两个记录,但在第二行将
LineOrderCost
OrderUnitCost
ExtraCost
设置为0,或者如果只有两行以上,则在第一行之后所有后续行,因此当
Emp\u Name
时,
公司
数量
是相同的,但ExtraDesc是不同的,按说明将这些值清空

如果我没有很好地描述这一点,我表示歉意,但在我的头脑中,这是有一定道理的:——)

谢谢,p

 Select EMP_NAME,COMPANY,QTY, EXTRADESC,
    Case when row>1 then 0 else ORDERUNITCOST end as ORDERUNITCOST,
    Case when row>1 then 0 else LINEORDERCOST end as LINEORDERCOST,
    Case when row>1 then 0 else EXTRACOST end as EXTRACOST
    from
    (Select Row_Number() Over(Partition By EMP_NAME order by EMP_NAME) as row,* from 
    Emp_Details) t

行号可以用来帮助实现这一点,但为什么不在演示层进行演示呢?您可以添加select的预期输出吗?您好,感谢您的回复,正如AmitSingh发布的那样,我成功地让它工作了,但很高兴看到我走的方向是正确的。我可以通过我的SSRS将其添加到表示层,这并不令人惊讶,因为这是其中一个,我认为这将是最好的方式。谢谢你的帮助!