ホームページ データベース SQL SQL クエリの 6 つのヒントを静かに共有します

SQL クエリの 6 つのヒントを静かに共有します

Feb 26, 2021 am 09:57 AM
SQLクエリ

SQL クエリの 6 つのヒントを静かに共有します

# 推奨 (無料): SQL チュートリアル

1. 行と列の変換

質問: 次のような生徒の得点表 (tb) があるとします。


SQL クエリの 6 つのヒントを静かに共有します

なりたい (目標を取得する)次の結果):



SQL クエリの 6 つのヒントを静かに共有します#コード:

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. ページング


#オプション 1: NOT IN および SELECT TOP ページング ステートメントのフォームを使用します。

SELECT TOP 10 * FROM TestTable
WHERE ID NOT IN
(SELECT TOP 20 ID FROM TestTable ORDER BY ID)
ORDER BY ID
ログイン後にコピー

オプション 2: より大きい ID および SELECT TOP ページング ステートメントを使用します。 form

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
ログイン後にコピー

オプション 3: SQL Server の機能 ROW_NUMBER をページングに使用する

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
ログイン後にコピー

重複行をマージしない

SELECT * FROM A
UNION ALL
SELECT * FROM B
ログイン後にコピー

4. ランダム並べ替え

SELECT * FROM TestTable ORDER BY NEWID()
ログイン後にコピー

TOP Random first N records

SELECT TOP 100 * FROM TestTable ORDER BY NEWID()
ログイン後にコピー

5 と組み合わせることもできます。両側のデータを任意の記号で区切ります


たとえば、次のようにします。データをカンマ (,) で区切ると、次のようになります。

# データは、次のように分割されます。 SQL クエリの 6 つのヒントを静かに共有します

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
ログイン後にコピー

コードは長いため、コードを分割します理解: SQL クエリの 6 つのヒントを静かに共有します

SELECT  CHARINDEX(',',',') --结果是1
SELECT  CHARINDEX(',','NULL') --结果是0
SELECT  CHARINDEX(',','') --结果是0
SELECT  CHARINDEX(',','A,B') --结果是2
SELECT  LEN('A,B') --结果是3
SELECT  LEN('A,B') - CHARINDEX(',','A,B') --结果是3-2=1
SELECT  RIGHT('A,B',( LEN('A,B') - CHARINDEX(',','A,B'))) --结果是 B
ログイン後にコピー

最後のステップでは、「A, B」を B に分割します。同様に、次を使用して A を取得することもできます。同様の方法。


6. WAITFOR 遅延実行

たとえば、SELECT ステートメントを実行する前に 1 時間 2 分 3 秒待機します。

WAITFOR DELAY '01:02:03'
SELECT * FROM Employee
ログイン後にコピー

DELAY は、実行が開始されるまでの遅延です。


例: SELECT ステートメントを実行する前に、午後 11 時 08 分まで待機します。


WAITFOR TIME '23:08:00'
SELECT * FROM Employee
ログイン後にコピー

TIME は、実行を開始する特定の時刻まで待機することです

我是岳哥,最后给大家分享我写的SQL两件套:《SQL基础知识第二版》和《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。有需要的读者可以下载学习,在下面的公众号「数据前线」(非本号)后台回复关键字:SQL,就行数据前线
——End——

后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
27岁发明SQL以后,上帝把他带走了

微信8.0不好玩?那可能是你打开方式不正确!

一个员工的离职成本有多恐怖!
SQL养成这些好习惯是一笔财富
MySQL基本知识点梳理和查询优化
ログイン後にコピー

その他の関連する無料学習の推奨事項:

SQLserver

以上がSQL クエリの 6 つのヒントを静かに共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Meituan のインタビューでの質問: SQL が遅いと感じたことはありますか?どのように解決されましたか? Meituan のインタビューでの質問: SQL が遅いと感じたことはありますか?どのように解決されましたか? Aug 24, 2023 pm 03:41 PM

MySQL のスロークエリログは、MySQL が提供するログレコードで、MySQL のクエリ時間が設定したしきい値 (long_query_time) を超えた (超過した) ステートメントをスロークエリログに記録するために使用されます。

PHP と PDO: 複雑な SQL クエリを実行する方法 PHP と PDO: 複雑な SQL クエリを実行する方法 Jul 28, 2023 pm 03:43 PM

PHP と PDO: 複雑な SQL クエリ ステートメントを実行する方法 データベース操作を処理する場合、PHP はデータベースとの対話を簡素化する強力な拡張ライブラリ PDO (PHPDataObjects) を提供します。 PDO は、MySQL、SQLite などのさまざまなデータベースをサポートし、開発者がさまざまなデータベース操作を実行しやすくするための豊富な機能とメソッドも提供します。この記事では、PDO を使用して複雑な SQL クエリ ステートメントを実行する方法を紹介し、対応するコード例を添付します。データベースに接続する

PHP プログラミングにおける一般的なテーブル操作は何ですか? PHP プログラミングにおける一般的なテーブル操作は何ですか? Jun 12, 2023 am 09:46 AM

Web 開発では、テーブルは最も基本的で一般的に使用される要素であり、PHP は人気のあるサーバーサイド プログラミング言語であり、テーブル操作には多くの一般的なテクニックとメソッドがあります。この記事では、PHP プログラミングにおける一般的なテーブル操作を紹介します。データ テーブルの表示 PHP では、HTML で table タグを使用してデータ テーブルを表示できますが、テーブルは PHP スクリプトで生成する必要があることに注意してください。基本的な HTML テーブル タグの例を次に示します。 <table><tr>

PHPクエリ文の使用例 PHPクエリ文の使用例 Mar 23, 2024 am 11:27 AM

PHP は、Web 開発で広く使用されている強力なサーバーサイド スクリプト言語です。 Web 開発では、多くの場合、データベースと対話し、クエリ ステートメントを実行してデータを取得する必要があります。この記事ではPHPでのクエリ文の書き方と使用例を紹介します。 1. データベースに接続する PHP を使用してデータベースにクエリを実行する前に、まずデータベースとの接続を確立する必要があります。通常、例として MySQL データベースを使用します。データベースに接続するコードは次のとおりです: $servername=

SQL クエリを実行すると Go プログラムでエラーが発生するのはなぜですか? SQL クエリを実行すると Go プログラムでエラーが発生するのはなぜですか? Jun 09, 2023 pm 06:10 PM

Go プログラミングでは、SQL クエリの使用が一般的なタスクです。ただし、SQL クエリの実行時にエラーが発生し、プログラムが正しく実行されなくなる場合があります。これらのエラーを解決するには、SQL クエリと Go 言語がどのように相互作用するかを深く理解する必要があります。以下に、考えられるエラーとそれに対応する解決策をいくつか示します。データベースドライバーの不足 Go 言語では、データベースに接続して操作するには、特定のデータベースドライバーを使用する必要があります。データベース クエリを実行しようとしたときに、データベース ドライバーが正しくインストールおよび構成されていない場合

PHP 開発で SQL クエリ ステートメントとインデックスの使用を最適化するにはどうすればよいですか? PHP 開発で SQL クエリ ステートメントとインデックスの使用を最適化するにはどうすればよいですか? Nov 02, 2023 pm 12:12 PM

PHP 開発で SQL クエリ ステートメントとインデックスの使用を最適化するにはどうすればよいですか? PHP 開発では、データベース クエリは非常に一般的な操作です。ただし、データ量が増加すると、クエリのパフォーマンスが影響を受け、アプリケーションの速度が低下する可能性があります。クエリのパフォーマンスを向上させるには、SQL クエリ ステートメントとインデックスの使用を最適化する必要があります。この記事では、PHP 開発における SQL クエリのパフォーマンスを向上させるのに役立ついくつかの最適化のヒントとベスト プラクティスを紹介します。 1. 正しいインデックスを使用します。インデックスは、クエリのパフォーマンスを向上させるデータベースの重要な部分です。設計データ内で

PHP プログラミングにおけるほとんどの SQL クエリ効率の最適化実践 PHP プログラミングにおけるほとんどの SQL クエリ効率の最適化実践 Jun 23, 2023 am 10:37 AM

ネットワーク技術の発展に伴い、PHP プログラミングは多くの企業の Web サイト開発の主流になりました。 PHP プログラミングでは、SQL クエリの効率はすべてのプログラマーが注意を払い、対処する必要がある問題です。 SQL クエリが非効率的であると、Web サイトの応答が遅くなったり、システム負荷が高くなったり、その他の好ましくない影響が生じます。したがって、この記事では、プログラムの実行効率とシステム全体の応答速度を向上させるために、PHP プログラミングにおけるさまざまな SQL クエリ効率の最適化手法を紹介することに焦点を当てます。データベース インデックス データベース インデックスは、データベース クエリの速度を向上させる基本的な方法です。

SQL ステートメントを使用して MySQL のデータをクエリおよびフィルタリングするにはどうすればよいですか? SQL ステートメントを使用して MySQL のデータをクエリおよびフィルタリングするにはどうすればよいですか? Dec 17, 2023 pm 05:13 PM

SQL ステートメントを使用して MySQL のデータをクエリおよびフィルタリングするにはどうすればよいですか? MySQL は一般的に使用されるリレーショナル データベース管理システムであり、データのクエリとフィルタリングを簡単に行うのに役立つ強力な SQL クエリ言語を提供します。この記事では、SQL ステートメントを使用して MySQL でデータをクエリおよびフィルタリングする方法を紹介します。これには、単純なクエリに SELECT ステートメントを使用する方法、条件付きフィルタリングに WHERE 句を使用する方法、ソートに ORDERBY 句を使用する方法、および LIMIT を使用する方法が含まれます。

See all articles