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很有可能正在使用它(排名第二,尤其是用于学习目的)。