Sql 仅选择1个数据,但行数仍为3
有办法吗 发件人:Sql 仅选择1个数据,但行数仍为3,sql,Sql,有办法吗 发件人: (Select MBLNo,HBLNo from tblCargo where MBLNo = 'M00000001' ) 1 | M00000001 | H0003 2 | M00000001 | H0003 3 | M00000001 | H0003 致: 虽然我认为在显示数据的应用程序中这样做更好,但在SQL中也可以: select id, case when row_number() over (partition by mb
(Select MBLNo,HBLNo from tblCargo where MBLNo = 'M00000001' )
1 | M00000001 | H0003
2 | M00000001 | H0003
3 | M00000001 | H0003
致:
虽然我认为在显示数据的应用程序中这样做更好,但在SQL中也可以:
select id,
case
when row_number() over (partition by mblno order by id) = 1 then mblno
else null
end as mblno
from tblcargo
where ...
虽然我认为在显示数据的应用程序中这样做更好,但在SQL中也可以:
select id,
case
when row_number() over (partition by mblno order by id) = 1 then mblno
else null
end as mblno
from tblcargo
where ...
看看这个
;WITH CTE
AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY MBLNO ORDER BY MBLNo) rno
FROM temp)
SELECT CASE
WHEN rno = 1
THEN MBLNo
ELSE NULL
END AS MBLNO,
HBLNo
FROM CTE;
所需输出:
MBLNo HBLNo
M00000001 H0003
NULL H0003
NULL H0003
看看这个
;WITH CTE
AS (
SELECT *,
ROW_NUMBER() OVER(PARTITION BY MBLNO ORDER BY MBLNo) rno
FROM temp)
SELECT CASE
WHEN rno = 1
THEN MBLNo
ELSE NULL
END AS MBLNO,
HBLNo
FROM CTE;
所需输出:
MBLNo HBLNo
M00000001 H0003
NULL H0003
NULL H0003
示例数据显示三列,但SELECT语句只包含两列。第一栏来自哪里?您使用的是哪种产品?博士后?神谕“SQL”只是一种查询语言,而不是特定数据库产品的名称。请改为在表示层中修复它。示例数据显示三列,但SELECT语句仅包含两列。第一栏来自哪里?您使用的是哪种产品?博士后?神谕“SQL”只是一种查询语言,而不是特定数据库产品的名称。请改为在表示层修复它。OP没有提到rdbms@TimSchmelter:这是标准的ANSI SQL(标签
SQL
指的是它)所有支持窗口功能我不知道MySql支持row_number
@TimSchmelter:没有人在谈论MySql-只有“SQL”(至少到目前为止)你在谈论所有现代rdbms。OP很有可能正在使用它(排名第二,尤其是用于学习目的)。OP没有提到rdbms@TimSchmelter:这是标准的ANSI SQL(标签SQL
指的是它)所有支持窗口功能我不知道MySql支持row_number
@TimSchmelter:没有人在谈论MySql-只有“SQL”(至少到目前为止)你在谈论所有现代rdbms。OP很有可能正在使用它(排名第二,尤其是用于学习目的)。