Heim > Datenbank > SQL > Hauptteil

Geben Sie ruhig 6 SQL-Abfragetipps weiter

coldplay.xixi
Freigeben: 2021-02-26 09:57:19
nach vorne
2925 Leute haben es durchsucht

Geben Sie ruhig 6 SQL-Abfragetipps weiter

Empfohlen (kostenlos): SQL-Tutorial

1. Zeilen- und Spaltenkonvertierung

Frage: Angenommen, es gibt eine Schülerbewertungstabelle (tb) wie folgt:

Geben Sie ruhig 6 SQL-Abfragetipps weiter

Möchten Sie werden (Erhalten Sie die folgenden Ergebnisse):

Geben Sie ruhig 6 SQL-Abfragetipps weiter

Code:

WITH tb(姓名,课程,分数) AS
(
SELECT N'张三',N'语文',74
UNION ALL
SELECT N'张三',N'数学',83
UNION ALL
SELECT N'张三',N'物理',93
UNION ALL
SELECT N'李四',N'语文',79
UNION ALL
SELECT N'李四',N'数学',86
UNION ALL
SELECT N'李四',N'物理',88
)

SELECT 姓名 ,
MAX(CASE 课程 WHEN '语文' THEN 分数 ELSE 0 END) 语文,
MAX(CASE 课程 WHEN '数学' THEN 分数 ELSE 0 END) 数学,
MAX(CASE 课程 WHEN '物理' THEN 分数 ELSE 0 END) 物理
FROM tb GROUP BY  姓名
Nach dem Login kopieren

2, Paging

Option 1: Verwenden Sie NOT IN und SELECT TOP Paging-Anweisungsformulare

SELECT TOP 10 * FROM TestTable
WHERE ID NOT IN
(SELECT TOP 20 ID FROM TestTable ORDER BY ID)
ORDER BY ID
Nach dem Login kopieren

Option 2: Verwenden Sie die ID größer als wie viel und wählen Sie Top Paging -Anweisungsformular

SELECT TOP 10 * FROM TestTable
WHERE ID > (
SELECT MAX(id) FROM 
(SELECT TOP 20 id FROM 
TestTable ORDER BY id) AS T)
ORDER BY ID
Nach dem Login kopieren

option 3: Verwenden Sie die Funktion row_number in SQL Server für Paging

SELECT * FROM (
  SELECT ROW_NUMBER() OVER(ORDER BY ID DESC) AS ROWID,*
  FROM TestTable
) AS mytable where ROWID between 21 and 40
Nach dem Login kopieren

3.

 SELECT * FROM A
UNION
SELECT * FROM B
Nach dem Login kopieren
Doppelte Zeilen nicht zusammenführen

SELECT * FROM A
UNION ALL
SELECT * FROM B
Nach dem Login kopieren


4. Zufällige Sortierung


SELECT * FROM TestTable ORDER BY NEWID()
Nach dem Login kopieren

Sie können auch TOP kombinieren, um die zufälligen ersten N Datensätze zu erhalten

5 Trennen Sie die Daten auf beiden Seiten mit einem beliebigen Symbol

Zum Beispiel verwenden wir Komma (,), um Daten zu trennen, und teilen die folgenden Daten


in die folgende Abbildung auf:

SELECT TOP 100 * FROM TestTable ORDER BY NEWID()
Nach dem Login kopieren
Geben Sie ruhig 6 SQL-Abfragetipps weiterDer Code ist lang, wir teilen den Code auf, um ihn zu verstehen:

SELECT R,
CASE WHEN  CHARINDEX(',',R)>1 THEN  LEFT(R,CHARINDEX(',',R)-1) ELSE NULL END AS R1 ,
CASE WHEN CHARINDEX(',',R)>1 THEN RIGHT(R,(LEN(R) - CHARINDEX(',',R))) ELSE NULL END AS R2
FROM  t
Nach dem Login kopieren
Im letzten Schritt teilen wir „A,B“ auf. Nachdem B getrennt wurde, können wir auf ähnliche Weise auch A erhalten.

Geben Sie ruhig 6 SQL-Abfragetipps weiter

6. WAITFOR verzögerte Ausführung


Beispiel: Warten Sie 1 Stunde, 2 Minuten und 3 Sekunden, bevor Sie die SELECT-Anweisung ausführen. Dabei ist DELAY die Verzögerung vor Beginn der Ausführung.

EMample: Warten Sie bis 23:08 Uhr, um die Auswahl der Auswahl von Anweisungen auszuführen.

Das obige ist der detaillierte Inhalt vonGeben Sie ruhig 6 SQL-Abfragetipps weiter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!