데이터 베이스 SQL 6가지 SQL 쿼리 팁을 조용히 공유하세요

6가지 SQL 쿼리 팁을 조용히 공유하세요

Feb 26, 2021 am 09:57 AM
SQL 쿼리

6가지 SQL 쿼리 팁을 조용히 공유하세요

권장(무료): SQL tutorial

1. 행 및 열 변환

질문: 다음과 같은 학생 점수 테이블(TB)이 있다고 가정합니다.

6가지 SQL 쿼리 팁을 조용히 공유하세요

되고 싶다(다음 결과 얻기):

6가지 SQL 쿼리 팁을 조용히 공유하세요

코드:

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

옵션 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 페이징 문 양식

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을 결합하여 임의의 상위 N개 레코드를 얻을 수도 있습니다

SELECT TOP 100 * FROM TestTable ORDER BY NEWID()
로그인 후 복사

5. 양쪽의 데이터를 임의의 기호로 분리하세요.
예를 들어 쉼표(,)를 사용하여 데이터를 구분하고 다음 데이터

6가지 SQL 쿼리 팁을 조용히 공유하세요를 다음 그림으로 나눕니다.

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
로그인 후 복사
6가지 SQL 쿼리 팁을 조용히 공유하세요코드가 길기 때문에 이해하기 위해 코드를 나눕니다.

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시 8분까지 기다리세요

WAITFOR TIME '23:08:00'
SELECT * FROM Employee
로그인 후 복사

여기서 TIME은 실행을 시작하기 위해 특정 시간까지 기다립니다

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

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

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

一个员工的离职成本有多恐怖!
SQL养成这些好习惯是一笔财富
MySQL基本知识点梳理和查询优化
로그인 후 복사

더 많은 관련 무료 학습 권장사항:

SQLserver

위 내용은 6가지 SQL 쿼리 팁을 조용히 공유하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Meituan 인터뷰 질문: 느린 SQL을 본 적이 있습니까? 어떻게 해결되었나요? Meituan 인터뷰 질문: 느린 SQL을 본 적이 있습니까? 어떻게 해결되었나요? Aug 24, 2023 pm 03:41 PM

MySQL의 느린 쿼리 로그는 MySQL에서 제공하는 로그 기록으로, 쿼리 시간이 설정된 임계값(long_query_time)을 초과(이상)한 명령문을 MySQL에서 기록하여 느린 쿼리 로그에 기록하는 데 사용됩니다.

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

웹 개발에서 테이블은 가장 기본적이고 일반적으로 사용되는 요소이며, PHP는 널리 사용되는 서버 측 프로그래밍 언어입니다. 테이블 작업에는 많은 공통 기술과 방법이 있습니다. 이 기사에서는 PHP 프로그래밍의 일반적인 테이블 작업을 소개합니다. 데이터 테이블 표시 PHP에서는 HTML의 테이블 태그를 사용하여 데이터 테이블을 표시할 수 있습니다. 테이블은 PHP 스크립트에서 생성되어야 한다는 점은 주목할 가치가 있습니다. 다음은 기본 HTML 테이블 태그의 예입니다. <table><tr>

PHP 쿼리문 사용 예 PHP 쿼리문 사용 예 Mar 23, 2024 am 11:27 AM

PHP는 웹 개발에 널리 사용되는 강력한 서버측 스크립팅 언어입니다. 웹 개발에서는 데이터를 얻기 위해 데이터베이스와 상호 작용하고 쿼리 문을 실행해야 하는 경우가 많습니다. 이 기사에서는 PHP에서 쿼리문을 작성하는 방법과 사용 예를 소개합니다. 1. 데이터베이스에 연결 PHP를 사용하여 데이터베이스를 쿼리하기 전에 먼저 데이터베이스와의 연결을 설정해야 합니다. 일반적으로 MySQL 데이터베이스를 예로 들어 데이터베이스에 연결하는 코드는 다음과 같습니다.

SQL 쿼리를 실행할 때 Go 프로그램에서 오류가 발생하는 이유는 무엇입니까? SQL 쿼리를 실행할 때 Go 프로그램에서 오류가 발생하는 이유는 무엇입니까? Jun 09, 2023 pm 06:10 PM

Go 프로그래밍에서는 SQL 쿼리를 사용하는 것이 일반적인 작업입니다. 그러나 SQL 쿼리를 실행할 때 오류가 발생하여 프로그램이 올바르게 실행되지 않는 경우가 있습니다. 이러한 오류를 해결하려면 SQL 쿼리와 Go 언어가 어떻게 상호 작용하는지 깊이 이해해야 합니다. 다음은 발생할 수 있는 몇 가지 오류와 해당 해결 방법입니다. 데이터베이스 드라이버 부족 Go 언어에서는 데이터베이스를 연결하고 운영하려면 특정 데이터베이스 드라이버를 사용해야 합니다. 데이터베이스 쿼리를 수행하려고 하는데 데이터베이스 드라이버가 제대로 설치 및 구성되지 않은 경우

PHP 프로그래밍에서 대부분의 SQL 쿼리 효율성 최적화 사례 PHP 프로그래밍에서 대부분의 SQL 쿼리 효율성 최적화 사례 Jun 23, 2023 am 10:37 AM

네트워크 기술의 발전으로 인해 PHP 프로그래밍은 많은 회사에서 웹사이트 개발의 주류가 되었습니다. PHP 프로그래밍에서 SQL 쿼리 효율성은 모든 프로그래머가 주의를 기울이고 처리해야 하는 문제입니다. 비효율적인 SQL 쿼리는 웹 사이트 응답 속도 저하, 시스템 부하 증가 또는 기타 불친절한 영향을 초래합니다. 따라서 이 기사에서는 프로그램의 실행 효율성과 전체 시스템의 응답 속도를 향상시키기 위해 PHP 프로그래밍에서 다양한 SQL 쿼리 효율성 최적화 사례를 소개하는 데 중점을 둘 것입니다. 데이터베이스 인덱스 데이터베이스 인덱스는 데이터베이스 쿼리 속도를 향상시키는 기본적인 방법입니다.

PHP 개발에서 SQL 쿼리 문과 인덱스 사용을 최적화하는 방법은 무엇입니까? PHP 개발에서 SQL 쿼리 문과 인덱스 사용을 최적화하는 방법은 무엇입니까? Nov 02, 2023 pm 12:12 PM

PHP 개발에서 SQL 쿼리 문과 인덱스 사용을 최적화하는 방법은 무엇입니까? PHP 개발에서 데이터베이스 쿼리는 매우 일반적인 작업입니다. 그러나 데이터 양이 증가하면 쿼리 성능에 영향을 미쳐 애플리케이션 속도가 느려질 수 있습니다. 쿼리 성능을 향상시키기 위해서는 SQL 쿼리문과 인덱스의 사용을 최적화해야 합니다. 이 문서에서는 PHP 개발 시 SQL 쿼리 성능을 향상시키는 데 도움이 되는 몇 가지 최적화 팁과 모범 사례를 소개합니다. 1. 올바른 인덱스 사용: 인덱스는 쿼리 성능을 향상시키는 데이터베이스의 중요한 부분입니다. 설계 데이터에서

PHP 언어 개발 시 SQL 쿼리 오류를 처리하는 방법은 무엇입니까? PHP 언어 개발 시 SQL 쿼리 오류를 처리하는 방법은 무엇입니까? Jun 09, 2023 pm 06:13 PM

PHP 언어는 웹 사이트 개발과 같은 분야에서 일반적으로 사용되는 서버 측 스크립팅 언어입니다. PHP 언어 개발에서는 SQL 쿼리가 일반적인 작업이지만 여러 가지 이유로 인해 SQL 쿼리로 인해 오류가 발생할 수 있습니다. 따라서 개발자는 애플리케이션의 안정성과 정확성을 보장하기 위해 코드에서 이러한 오류를 처리해야 합니다. 일반적으로 PHP 언어에서는 SQL 쿼리 오류를 처리하는 몇 가지 일반적인 방법이 있습니다. 1. try/catch 블록을 사용하여 예외를 처리할 수 있습니다.

See all articles