Heim  >  Artikel  >  Datenbank  >  Geben Sie ruhig 6 SQL-Abfragetipps weiter

Geben Sie ruhig 6 SQL-Abfragetipps weiter

coldplay.xixi
coldplay.xixinach vorne
2021-02-26 09:57:192926Durchsuche

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  姓名

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

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

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

3.

 SELECT * FROM A
UNION
SELECT * FROM B
Doppelte Zeilen nicht zusammenführen

SELECT * FROM A
UNION ALL
SELECT * FROM B


4. Zufällige Sortierung


SELECT * FROM TestTable ORDER BY NEWID()

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()
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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen