SQL SERVER中apply操作符
您现在的位置:首页>教程>编程开发>mssql数据库 > SQL SERVER中apply操作符 SQL SERVER中apply操作符 感谢 3lian8 的投递 时间:2014-03-10 来源:三联教程 apply操作符 使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函
您现在的位置:首页 > 教程 > 编程开发 > mssql数据库 > SQL SERVER中apply操作符
SQL SERVER中apply操作符
感谢 3lian8 的投递 时间:2014-03-10 来源:三联教程
apply操作符
使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。
基础准备创建测试表:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
create table test4
(
id int identity(1,1),
name varchar(100)
)
create table test4Score
(
test4id int,
score int
)
insert into test4(name)
select 'LeeWhoeeUniversity'
union all
select 'LeeWhoee'
union all
select 'DePaul'
insert into test4score(test4id,score)
select 1,100
union all
select 1,90
union all
select 1,90
union all
select 1,80
union all
select 2,90
union all
select 2,82
union all
select 2,10
test4表中数据:
id name
1 LeeWhoeeUniversity
2 LeeWhoee
3 DePaul
test4score表中数据:
test4id score
1 100
1 90
1 90
1 80
2 90
2 82
2 10
现在用APPLY操作符仅获取每个name的两个最高score记录:
?
1
2
3
4
5
select * from test4 a
cross apply
(
select top 2 * from test4score where test4id=a.id order by score desc
) b
分析如下:
右输入-- select top 2 * from test4score where test4id=a.id order by score desc
左输入--select * from test4
右输入求值对左输入的每一行进行计算。
更进一步分析:
左输入第一行是1 LeeWhoeeUniversity
右输入计算左输入第一行id最高两个score记录得出:
id test4id score
1 1 100
3 1 90
组合行:
id name test4id score
1 LeeWhoeeUniversity 1 100
1 LeeWhoeeUniversity 1 90
以此类推,直至完成左输入所有行的计算。
结果如下:
id name test4id score
1 LeeWhoeeUniversity 1 100
1 LeeWhoeeUniversity 1 90
2 LeeWhoee 2 90
2 LeeWhoee 2 82
outer apply 类似于LEFT JOIN,
?
1
2
3
4
5
select * from test4 a
outer apply
(
select top 2 * from test4score where test4id=a.id order by score desc
) b
id name test4id score
1 LeeWhoeeUniversity 1 100
1 LeeWhoeeUniversity 1 90
2 LeeWhoee 2 90
2 LeeWhoee 2 82
3 DePaul NULL NULL
由于test4score表中没有'DePaul'的记录,所以用NULL值填充。
当然还有更多的方法来实现此需求,如使用排名函数ROW_NUMBER:
?
1
2
3
4
select b.name,a.score from(
select *,ROW_NUMBER()over(partition by test4id order by score desc) as rum from test4score
) a
inner join test4 b on b.id=a.test4id where rum
结果:
name score
LeeWhoeeUniversity 100
LeeWhoeeUniversity 90
LeeWhoee 90
LeeWhoee 82
此方法是用前面介绍的ROW_NUMBER()和PARTITION BY来实现,详细请见:
SQL SERVER排名函数RANK,,DENSE_RANK,NTILE,ROW_NUMBER还有一种更古老的方法,但是必须给test4socre表添加标识列,新表结构如下:
?
1
2
3
4
5
6
create table test4Score
(
id int identity(1,1),
test4id int,
score int
)
新数据:
id test4id score
1 1 100
2 1 90
3 1 90
4 1 80
5 2 90
6 2 82
7 2 10
用带子查询的SQL语句:
?
1
2
3
4
select a.name,b.score from test4 a inner join test4score b on a.id=b.test4id where b.id in
(
select top 2 id from test4score where test4id=b.test4id order by score desc
)
结果:
name score
LeeWhoeeUniversity 100
LeeWhoeeUniversity 90
LeeWhoee 90
LeeWhoee 82
相关文章
标签:
[返回三联首页] [返回mssql数据库栏目] / [加入三联文集]

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PyCharm ist eine sehr beliebte integrierte Entwicklungsumgebung (IDE) für Python. Sie bietet eine Fülle von Funktionen und Tools, um die Python-Entwicklung effizienter und komfortabler zu gestalten. Dieser Artikel führt Sie in die grundlegenden Betriebsmethoden von PyCharm ein und stellt spezifische Codebeispiele bereit, um den Lesern einen schnellen Einstieg zu erleichtern und sich mit der Bedienung des Tools vertraut zu machen. 1. Laden Sie PyCharm herunter und installieren Sie es. Zuerst müssen wir zur offiziellen Website von PyCharm gehen (https://www.jetbrains.com/pyc).

sudo (Superuser-Ausführung) ist ein Schlüsselbefehl in Linux- und Unix-Systemen, der es normalen Benutzern ermöglicht, bestimmte Befehle mit Root-Rechten auszuführen. Die Funktion von sudo spiegelt sich hauptsächlich in den folgenden Aspekten wider: Bereitstellung von Berechtigungskontrolle: sudo erreicht eine strikte Kontrolle über Systemressourcen und sensible Vorgänge, indem es Benutzern erlaubt, vorübergehend Superuser-Berechtigungen zu erhalten. Normale Benutzer können über sudo bei Bedarf nur vorübergehende Berechtigungen erhalten und müssen sich nicht ständig als Superuser anmelden. Verbesserte Sicherheit: Durch die Verwendung von sudo können Sie die Verwendung des Root-Kontos bei Routinevorgängen vermeiden. Die Verwendung des Root-Kontos für alle Vorgänge kann zu unerwarteten Systemschäden führen, da für jeden fehlerhaften oder nachlässigen Vorgang die vollen Berechtigungen gewährt werden. Und

WindowsServerBackup ist eine Funktion des WindowsServer-Betriebssystems, die Benutzern dabei helfen soll, wichtige Daten und Systemkonfigurationen zu schützen und vollständige Sicherungs- und Wiederherstellungslösungen für kleine, mittlere und große Unternehmen bereitzustellen. Nur Benutzer, die Server2022 und höher ausführen, können diese Funktion nutzen. In diesem Artikel erklären wir, wie Sie WindowsServerBackup installieren, deinstallieren oder zurücksetzen. So setzen Sie die Windows Server-Sicherung zurück: Wenn Sie Probleme mit der Sicherung Ihres Servers haben, die Sicherung zu lange dauert oder Sie nicht auf gespeicherte Dateien zugreifen können, können Sie die Sicherungseinstellungen Ihres Windows Servers zurücksetzen. Um Windows zurückzusetzen

Betriebsschritte und Vorsichtsmaßnahmen für LinuxDeploy LinuxDeploy ist ein leistungsstarkes Tool, mit dem Benutzer schnell verschiedene Linux-Distributionen auf Android-Geräten bereitstellen können, sodass Benutzer ein vollständiges Linux-System auf ihren Mobilgeräten erleben können. In diesem Artikel werden die Betriebsschritte und Vorsichtsmaßnahmen von LinuxDeploy ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, dieses Tool besser zu nutzen. Arbeitsschritte: LinuxDeploy installieren: Zuerst installieren

Vermutlich haben viele Benutzer zu Hause mehrere ungenutzte Computer und haben das Einschaltpasswort völlig vergessen, weil sie längere Zeit nicht benutzt wurden. Sie möchten also wissen, was zu tun ist, wenn sie das Passwort vergessen? Dann lasst uns gemeinsam einen Blick darauf werfen. Was tun, wenn Sie vergessen, F2 für das Win10-Startkennwort zu drücken? 1. Drücken Sie den Netzschalter des Computers und drücken Sie dann beim Booten F2 (verschiedene Computermarken haben unterschiedliche Tasten zum Aufrufen des BIOS). 2. Suchen Sie in der BIOS-Schnittstelle nach der Sicherheitsoption (der Speicherort kann je nach Computermarke unterschiedlich sein). Normalerweise im Einstellungsmenü oben. 3. Suchen Sie dann die Option „SupervisorPassword“ und klicken Sie darauf. 4. Zu diesem Zeitpunkt kann der Benutzer sein Passwort sehen und gleichzeitig die Option „Aktiviert“ daneben finden und auf „Dis“ umstellen.

Mit der Beliebtheit von Smartphones ist die Screenshot-Funktion zu einer der wesentlichen Fähigkeiten für die tägliche Nutzung von Mobiltelefonen geworden. Als eines der Flaggschiff-Handys von Huawei hat die Screenshot-Funktion des Huawei Mate60Pro natürlich große Aufmerksamkeit bei den Nutzern auf sich gezogen. Heute werden wir die Screenshot-Bedienungsschritte des Huawei Mate60Pro-Mobiltelefons teilen, damit jeder bequemer Screenshots machen kann. Erstens bietet das Huawei Mate60Pro-Mobiltelefon eine Vielzahl von Screenshot-Methoden, und Sie können die Methode auswählen, die Ihren persönlichen Gewohnheiten entspricht. Im Folgenden finden Sie eine detaillierte Einführung in mehrere häufig verwendete Abfangfunktionen:

Apple brachte einige Pro-exklusive Hardwarefunktionen in das iPhone 15 Pro und 15 Pro Max ein, die die Aufmerksamkeit aller auf sich zogen. Wir sprechen von Titanrahmen, schlanken Designs, dem neuen A17 Pro-Chipsatz, einem aufregenden 5-fach-Teleobjektiv und mehr. Von all dem Schnickschnack, der den iPhone 15 Pro-Modellen hinzugefügt wurde, bleibt die Aktionstaste ein herausragendes und hervorstechendes Merkmal. Es versteht sich von selbst, dass es eine nützliche Ergänzung zum Starten von Aktionen auf Ihrem iPhone ist. Allerdings könnten Sie versehentlich die Aktionstaste gedrückt halten und die Funktion unbeabsichtigt auslösen. Ehrlich gesagt ist es ärgerlich. Um dies zu vermeiden, sollten Sie die Aktionstaste auf dem iPhone 15 Pro und 15 Pro Max deaktivieren. lassen

CSS-Webseiten-Scroll-Überwachung: Überwachen Sie das Scrollen von Webseiten und führen Sie entsprechende Vorgänge aus. Mit der kontinuierlichen Entwicklung der Front-End-Technologie werden die Effekte und Interaktionen von Webseiten immer vielfältiger. Unter diesen ist die Scroll-Überwachung eine gängige Technologie, mit der einige Spezialeffekte oder Vorgänge basierend auf der Scroll-Position ausgeführt werden können, wenn der Benutzer auf der Webseite scrollt. Im Allgemeinen kann die Scroll-Überwachung über JavaScript implementiert werden. In einigen Fällen können wir den Effekt der Scroll-Überwachung jedoch auch durch reines CSS erzielen. In diesem Artikel wird erläutert, wie das Scrollen von Webseiten über CSS implementiert wird
