根据条件获取行值 - T-SQL
Get a row value based on criterias - T-SQL
Sample Data in Yellow the desired output
只需要您的专家帮助。
我需要得到基于 T-SQL 的输出。每当 invoice_line_id_link
为 0 时,将 product_id
值放入 id
列并获取该行的 product_id
。
这是脚本。
declare @t table
(id int, invoice_id int, product_id int, invoice_line_id_link int);
insert into @t values
(53,10,383,0),
(54,10,344,53),
(55,10,920,53),
(57,10,384,0),
(58,10,359,57),
(59,10,242,57),
(60,10,284,0);
select id, invoice_id, product_id,invoice_line_id_link, null desiredoutput from @t
如果可能的话,基于图像使用 TSQL 填充
根据您提供的图像,这是生成所需输出的代码段。
Table 填充
declare @t table (id int, invoice_id int, product_id int, invoice_line_id_link int);
insert into @t values (53,10,383,0), (54,10,344,53), (55,10,920,53), (57,10,384,0), (58,10,359,57), (59,10,242,57), (60,10,284,0);
输出代码
select *,CASE WHEN invoice_line_id_link = 0 THEN product_id
ELSE (select t1.product_id from @t t1 where t1.id = t2.invoice_line_id_link)
END from @t t2
输出
id invoice_id product_id invoice_line_id_link desiredoutput
53 10 383 0 383
54 10 344 53 383
55 10 920 53 383
57 10 384 0 384
58 10 359 57 384
59 10 242 57 384
60 10 284 0 284
*/
Sample Data in Yellow the desired output
只需要您的专家帮助。
我需要得到基于 T-SQL 的输出。每当 invoice_line_id_link
为 0 时,将 product_id
值放入 id
列并获取该行的 product_id
。
这是脚本。
declare @t table
(id int, invoice_id int, product_id int, invoice_line_id_link int);
insert into @t values
(53,10,383,0),
(54,10,344,53),
(55,10,920,53),
(57,10,384,0),
(58,10,359,57),
(59,10,242,57),
(60,10,284,0);
select id, invoice_id, product_id,invoice_line_id_link, null desiredoutput from @t
如果可能的话,基于图像使用 TSQL 填充
根据您提供的图像,这是生成所需输出的代码段。
Table 填充
declare @t table (id int, invoice_id int, product_id int, invoice_line_id_link int);
insert into @t values (53,10,383,0), (54,10,344,53), (55,10,920,53), (57,10,384,0), (58,10,359,57), (59,10,242,57), (60,10,284,0);
输出代码
select *,CASE WHEN invoice_line_id_link = 0 THEN product_id
ELSE (select t1.product_id from @t t1 where t1.id = t2.invoice_line_id_link)
END from @t t2
输出
id invoice_id product_id invoice_line_id_link desiredoutput
53 10 383 0 383
54 10 344 53 383
55 10 920 53 383
57 10 384 0 384
58 10 359 57 384
59 10 242 57 384
60 10 284 0 284
*/