Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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 Server需要一列和所有其他记录的前1条记录_Sql_Sql Server - Fatal编程技术网

SQL Server需要一列和所有其他记录的前1条记录

SQL Server需要一列和所有其他记录的前1条记录,sql,sql-server,Sql,Sql Server,我需要对进行一次查询以选择KitchenBlinkSound='Y'的所有记录以及KitchenBlinkSound='N'的top 1,这是我的表结构 我请求的结果将是订单号22526227。基本上,它包含所有的KitchenBlinkSound='Y'记录以及KitchenBlinkSound='N'记录的top 1 SELECT * FROM TABLE WHERE KitchenBlinkSound='Y' UNION ALL SELECT TOP 1 * FROM TABLE W

我需要对进行一次查询以选择
KitchenBlinkSound='Y'
的所有记录以及
KitchenBlinkSound='N'
top 1
,这是我的表结构

我请求的结果将是订单号22526227。基本上,它包含所有的
KitchenBlinkSound='Y'
记录以及
KitchenBlinkSound='N'
记录的
top 1

SELECT * FROM TABLE WHERE KitchenBlinkSound='Y'
UNION ALL 
SELECT TOP 1 *  FROM TABLE WHERE KitchenBlinkSound='N'
ORDER BY ORDERNO
更新

SELECT TOP 3 * FROM
(
    SELECT * FROM #TABLE1 WHERE KitchenBlinkSound='Y'
    UNION ALL 
    SELECT ORDERNO,KITCHENSTATUS,KitchenBlinkSound FROM
    (
        SELECT *,
        ROW_NUMBER() OVER(PARTITION BY KitchenBlinkSound ORDER BY ORDERNO ASC) RNO 
        FROM #TABLE1 WHERE KitchenBlinkSound='N'
    )TAB
    WHERE TAB.RNO=1
)MAIN
  • 由于子查询不允许按排序,因此添加了行编号(),以确保您正在按升序选择前1个
    ORDERNO
    。如果要按降序排列,请将
    ASC
    更改为
    DESC

如果我需要
orderbyorderno desc
orderbyorderno desc将OrderNo-230作为第一项。默认情况下,orderby ORDERNO将ORDERNO-227作为前1项@德赛总督
Select * from [your table name] where KitchenBlickSound = 'Y'
UNION
Select TOP 1 * from [your table name] where KitchenBlickSound = 'N'