SQL查询只显示一个字段一次,该字段有多条记录

SQL查询只显示一个字段一次,该字段有多条记录,sql,sql-server,tsql,Sql,Sql Server,Tsql,结果应该是 projName - percentage- ----------------------- A - 10 - A - 25 - B - 20 - B - 30 - 使用CASE条件和Row_编号,我们可以实现上述输出 这完全是基于你的样本数据 projName - percentage- ----------------------- A - 10

结果应该是

projName - percentage-
-----------------------
A        - 10        -
A        - 25        -
B        - 20        -
B        - 30        -

使用CASE条件和Row_编号,我们可以实现上述输出

这完全是基于你的样本数据

projName - percentage-
-----------------------
A        - 10        -
         - 25        -
B        - 20        -
         - 30        -
在你的问题中,我修改了答案

DECLARE @Table1 TABLE 
    (projName varchar(1), percentage int)
;

INSERT INTO @Table1
    (projName, percentage)
VALUES
    ('A', 10),
    ('A', 25),
    ('B', 20),
    ('B', 30)
;

Select CASE WHEN RN = 1 THEN projName ELSE NULL END projName, percentage from (
select projName, percentage,ROW_NUMBER()OVER(PARTITION BY projName ORDER BY (SELECT NULL))RN from @Table1 )T

请发布样本数据并将其输出,我们将更容易回答------------------将其固定在表示层。你在SQL中什么都不做。我同意@jarlh-这在SQL Server中是一个糟糕的想法,它想在你的表示层中完成。萨卡:我在下面这样例外,,像这样的20 A 10输出A20-10 Welcome@kiranbabu如果有帮助,你可以标记为Answer如果你想修改整个脚本,请在另一个问题中提问,我已经根据样本数据给出了结果集更多信息请正确对齐问题为什么没有标出你的答案。。你能解释一下原因吗Reason@kiranbabu请检查并让我知道您有任何问题,更多问题请在提问之前查看堆栈溢出规则和规定,因为您已经获得了大量的反对票
Select CASE WHEN T.RN = 1 THEN T.projName ELSE NULL END projName, T.percentage FROM  (select 
i.invoice_id,
pr.name as projname ,
ROW_NUMBER()OVER(PARTITION BY projName ORDER BY (SELECT NULL))RN
from annexure a,
project pr,
sow s,
invoice i 
where pr.project_id = s.project_id 
and a.sow_id = s.sow_id 
and i.annexure_id = a.annexure_id 
group by pr.name,i.invoice_date,i.invoice_id )T