Bài viết này khám phá thao tác chuỗi bằng cách sử dụng hàm SQL Coalesce trong SQL Server. Thao tác chuỗi được sử dụng để tạo ra một dạng dữ liệu hiện có khác.

Bạn đang xem : kết hợp sử dụng trong sql

Bài viết này khám phá thao tác chuỗi bằng cách sử dụng hàm SQL Coalesce trong SQL Server.

Thao tác chuỗi là một quy trình để tạo ra một dạng dữ liệu hiện có khác theo cách doanh nghiệp sử dụng hoặc hiển thị dưới dạng kết quả trong báo cáo. Tôi đã viết các bài viết về hàm chuỗi SQL trước đây, bao gồm hàm chuỗi SQL cho Data Munging tổng quan về hàm chuỗi con của SQL , thảo luận về các nhiệm vụ chuẩn bị dữ liệu và quản lý dữ liệu bằng cách sử dụng chuỗi SQL Server tích hợp sẵn chức năng.

Máy chủ SQL cũng có một số hàm ký tự cài sẵn cũng cho phép chúng tôi thao tác và chuyển đổi dữ liệu. Đồng thời, điều quan trọng là phải kiểm tra tập dữ liệu, khám phá các giá trị dữ liệu và mã hóa hoặc giải mã các giá trị, nếu cần, để tạo ra dữ liệu có ý nghĩa. Điều quan trọng là phải biết cách điều hướng qua các giá trị bị thiếu trong tập dữ liệu của chúng tôi, hiểu tác động đến các phép tính, truy vấn, báo cáo và chuẩn bị tập dữ liệu cũng như đưa ra các kỹ thuật để tránh để giá trị Null làm hỏng tập kết quả của chúng tôi.

Giá trị NULL là gì?

Trước khi chúng ta đi sâu vào cách điều hướng bãi mìn tiềm năng của các tập dữ liệu có các giá trị bị thiếu và tránh dẫm phải Null, trước tiên chúng ta hãy xem nhanh NULL là gì.

Theo định nghĩa của Wikipedia

Null (hoặc NULL) là một điểm đánh dấu đặc biệt được sử dụng trong Ngôn ngữ truy vấn có cấu trúc để chỉ ra rằng giá trị dữ liệu không tồn tại trong cơ sở dữ liệu. Được giới thiệu bởi người tạo ra mô hình cơ sở dữ liệu quan hệ, E. F. Codd, SQL Null phục vụ để đáp ứng yêu cầu rằng tất cả các hệ thống quản lý cơ sở dữ liệu quan hệ thực sự (RDBMS) đều hỗ trợ biểu diễn “thông tin bị thiếu và thông tin không thể áp dụng”. Codd cũng giới thiệu việc sử dụng ký hiệu omega (ω) trong tiếng Hy Lạp viết thường để biểu diễn Null trong lý thuyết cơ sở dữ liệu. Trong SQL, NULL là một từ dành riêng được sử dụng để xác định điểm đánh dấu này. … Không nên nhầm lẫn điều này với giá trị bằng 0. Giá trị rỗng biểu thị sự thiếu giá trị – việc thiếu giá trị không giống với giá trị bằng 0 giống như cách thiếu một câu trả lời không phải là điều tương tự như câu trả lời “không”.

Hơn nữa…

SQL null là một trạng thái, không phải là một giá trị. Cách sử dụng này khá khác với hầu hết các ngôn ngữ lập trình, trong đó giá trị null của một tham chiếu có nghĩa là nó không trỏ đến bất kỳ đối tượng nào.

SQL cung cấp một số chức năng hữu ích để làm việc với dữ liệu ký tự trong các truy vấn SQL của bạn mà chúng tôi sẽ mô tả chi tiết

Hàm SQL Coalesce

Các hàm SQL Coalesce và IsNull được sử dụng để xử lý các giá trị NULL. Trong quá trình đánh giá biểu thức, các giá trị NULL được thay thế bằng giá trị do người dùng xác định.

Hàm Coalesce trong SQL đánh giá các đối số theo thứ tự và luôn trả về giá trị không rỗng đầu tiên từ danh sách đối số đã xác định.

Cú pháp

COALESCE (biểu thức [1… n])

Các thuộc tính của hàm SQL Coalesce

  1. Biểu thức phải có cùng kiểu dữ liệu
  2. Nó có thể chứa nhiều biểu thức
  3. Hàm SQL Coalesce là một phím tắt cú pháp cho biểu thức Case
  4. Luôn luôn đánh giá cho một số nguyên trước tiên, một số nguyên theo sau là biểu thức ký tự cho kết quả là số nguyên.

Ví dụ:

1

2

3

4

5

6

CHỌN

THAN

Xem Thêm  Cách nhận giá trị của trường nhập văn bản bằng JavaScript - lấy văn bản từ javascript đầu vào

(

KHÔNG ĐỦ

,

‘A’

,

‘B’

)

CHỌN

THAN

(

NULL

,

100

,

20

,

30

,

40

)

CHỌN

THAN

(

KHÔNG ĐỦ

,

KHÔNG ĐỦ

,

20

,

KHÔNG ĐỦ

,

KHÔNG ĐỦ

)

CHỌN

THAN

(

KHÔNG ĐỦ

,

KHÔNG ĐỦ

,

NULL

,

KHÔNG CÓ

,

KHÔNG ĐỦ

,

‘Prashanth’

)

CHỌN

THAN

(

NULL

,

KHÔNG ĐỦ

,

KHÔNG ĐỦ

,

NULL

,

1

,

‘Prashanth’

)

CHỌN

< p class = "crayon-h">

THAN

(

KHÔNG ĐỦ

,

NULL

,

NULL

,

N ULL

,

NULL

,

‘Prashanth’

,

1

)

SQL Coalesce trong một hoạt động nối chuỗi

Trong ví dụ sau, chúng ta sẽ nối một số giá trị. Tuy nhiên, xin nhắc lại, đây chỉ là một bài đánh giá để cho bạn biết điều gì sẽ xảy ra khi chúng tôi có giá trị NULL. Vì vậy, hãy tiếp tục và thực thi T-SQL. Và chúng ta có thể thấy rằng chúng ta gặp phải giá trị NULL trong khi xử lý thao tác nối chuỗi. Máy chủ SQL chỉ trả về NULL bất cứ khi nào nó gặp giá trị NULL. Kết quả không phải là sự kết hợp của tên, null và họ.

1

CHỌN

firstName

+

+

MiddleName

+

+

LastName

FullName

TỪ

Người

.

Người

Hãy để chúng tôi xử lý các giá trị NULL bằng cách sử dụng một hàm có tên là SQL COALESCE. Nó cho phép xử lý hành vi của giá trị NULL. Vì vậy, trong trường hợp này, hãy sử dụng hàm SQL kết hợp để thay thế bất kỳ giá trị NULL của tên đệm nào bằng giá trị ‘‘ (Char (13) -space). Câu lệnh SQL vẫn nên nối cả ba tên, nhưng không có giá trị NULL nào hiển thị trong đầu ra. Bây giờ chúng ta thấy rằng tên đầy đủ được hiển thị với một khoảng trắng ở giữa, cho các giá trị NULL. Bằng cách này, có thể tùy chỉnh các giá trị cột một cách hiệu quả.

1

CHỌN

firstName

+

+

THAN

(

MiddleName

,

” < / p>

)

+

+

LastName

TỪ

Người

.

Người

Hàm SQL Coalesce và xoay vòng

Ví dụ sau đây trả về các giá trị không rỗng được nối từ bảng ‘trạng thái’. Trong một số trường hợp, bạn có thể cần phải gán các giá trị tĩnh được nối cho một biến. Trong trường hợp này, các giá trị của cột thành phố được phân tích cú pháp bằng cách sử dụng hàm Coalesce SQL và được nối trong một dấu ngoặc kép để chuẩn bị một chuỗi giá trị. Sau đó, đầu ra được thao tác thêm để loại bỏ ký tự cuối cùng để tìm nạp một chuỗi giá trị đầu vào hợp lệ.

1

2

3

4

5

6

7

8

9

10

11

12

13

THẢ

BẢNG

NẾU

TỒN TẠI

STATE

;

TẠO

BẢNG

STATE

(

CITY < / p>

VARCHAR

(

50

)

,

STATE

VARCHAR

(

500

)

)

CHÈN

VÀO

STATE

GIÁ TRỊ

(

‘Appleton’

< p class = "crayon-sy">,

‘WI’

)

,

(

‘Milwaukee’

,

‘WI’

)

,

(

‘Madison’

,

‘WI’

)

,

(

‘Miami’

,

‘Florida’

)

,

(

‘Jacksonville’

,

‘Florida’

)

KHAI BÁO

@

col

nvarchar

(

MAX

< p class = "crayon-sy">)

;

CHỌN

@

col

= < / p>

THAN

(

@

col

,

)

+

+

< p class = "crayon-i"> THÀNH PHỐ

+

+

‘,’

TỪ

dbo

.

STATE

WHERE

trạng thái

=

‘WI ‘

;

CHỌN

chuỗi con

(

@

col < / p>

,

1

,

len

(

@

col

)

1 < / p>

)

Đầu ra:

1

CHỌN

‘(‘

+

chuỗi con

< p class = "crayon-sy"> (

@

col

,

1

,

len

(

@

col

< p class = "crayon-sy">)

1

)

+

‘)’

Hàm vô hướng do người dùng xác định và hàm SQL Coalesce

Một hàm do người dùng xác định được tạo để trả về một chuỗi cụ thể cho đầu vào được cung cấp và sau đó đầu ra được nhóm lại bằng cách sử dụng mệnh đề nhóm. Trong ví dụ sau, hàm có giá trị vô hướng trả về các giá trị chuỗi nối được phân tách bằng dấu ‘,’ cho đầu vào ‘Thành phố’ được chỉ định. Ví dụ sau trả về kết quả đầu ra trong đó cột trạng thái được nhóm lại và các giá trị thành phố của nó được nối và phân tách bằng dấu phân cách ‘,’ (dấu phẩy). Bạn cũng có thể sử dụng STRING_AGG nếu đang sử dụng SQL Server 2017. Bạn có thể tham khảo thêm thông tin với bài viết Các hàm chuỗi SQL hàng đầu trong SQL Server 2017

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

TẠO

CHỨC NĂNG

dbo

.

tfn_CoalesceConcat < / p>

(

< p class = "crayon-line" id = "urvanov-Cú pháp-highlighter-62b3de783a9cc663715705-4">

@

trạng thái

varchar

(

100

)

)

RET URNS

NVARCHAR

(

< p class = "crayon-i"> MAX

)

AS

BẮT ĐẦU

KHAI BÁO

@

str

NVARCHAR

(

MAX

)

;

CHỌN

@

str

=

THAN

(

@

str

+

‘,’

,

‘ ‘

)

+

< p class = "crayon-h">

THÀNH PHỐ

TỪ

dbo

.

STATE

WHERE

< p class = "crayon-h">

trạng thái

=

@

bang

ĐẶT HÀNG

THEO

< / p>

trạng thái

Xem Thêm  Hình ảnh nền trung tâm trong CSS - trung tâm css ảnh nền

;

QUAY LẠI

(

@

str

)

;

HẾT

ĐI < / p>

Đây là cách chúng ta gọi tên hàm dbo.tfn_CoalesceConcat trong câu lệnh select.

Đầu ra là một dòng giá trị nối liền nhau được phân tách bằng dấu phân cách ‘,’

1

2

3

4

CHỌN

trạng thái

,

thành phố

=

dbo

.

tfn_CoalesceConcat

< p class = "crayon-sy"> (

trạng thái

)

TỪ

dbo

.

trạng thái

NHÓM

BY

trạng thái

ĐƠN ĐẶT HÀNG

BY

trạng thái

;

Xác thực dữ liệu bằng hàm SQL Coalesce

Trong ví dụ sau, chúng ta sẽ tìm các địa chỉ liên hệ của nhân viên khẩn cấp. Thông thường, trong bất kỳ tổ chức nào, số điện thoại của nhân viên được liệt kê trong các cột cơ quan, nhà riêng, điện thoại di động.

Hãy để chúng tôi xem cách tìm nhân viên mà không có liên hệ khẩn cấp nào được liệt kê hoặc nói cách khác, hãy lấy tất cả thông tin chi tiết về nhân viên có liên hệ khẩn cấp.

Trong ví dụ sau, tb_EmergencyContact chứa số liên lạc của tất cả nhân viên.

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

THẢ

BẢNG

NẾU

TỒN TẠI

tb_EmergencyContact

;

TẠO

BẢNG

tb_EmergencyContact

(

empid

int

,

tên đầu tiên

BIẾN HÌNH

(

100

)

KHÔNG

NULL

,

họ

BIẾN HÌNH

(

100

)

KHÔNG

NULL

,

mối quan hệ

BIẾN HÌNH

(

100

)

,

homephone

VARCHAR

(

25

)

,

< / p>

điện thoại làm việc

VARCHAR

(

< p class = "crayon-cn"> 25

)

,

điện thoại di động

VARCHAR

(

25

)

)

;

CHÈN

VÀO

tb_EmergencyContact

(

rỗng

,

tên đầu tiên

,

< p class = "crayon-h">

họ

,

mối quan hệ

,

homephone

,

điện thoại làm việc

,

điện thoại di động

)

GIÁ TRỊ

(

1

,

‘Ambika’

,

‘Prashanth’

,

‘Vợ’

,

NULL

,

< / p>

‘920.176.1456’

,

‘928.132. 2967 ‘

)

,

(

2

,

‘Prashanth’

,

‘Jayaram’

,

‘vợ / chồng’

,

NULL

,

< p class = "crayon-h">

NULL

,

‘982.132.2867’ < / p>

)

,

(< / p>

3

,

‘Pravitha ‘

,

‘Prashanth’

,

‘Con gái’

,

NULL

,

NULL

,

NULL

)

Hàm SQL Coalesce được sử dụng để chọn các cột điện thoại gia đình, điện thoại làm việc và điện thoại di động. Trong trường hợp giá trị NULL, giá trị ‘NA’ (không áp dụng), một chuỗi ký tự được trả về.

1

2

3

4

5

6

CHỌN

tên đầu tiên

+

+

họ

tên đầy đủ

,

< / p>

mối quan hệ

,

THAN

(

điện thoại gia đình

,

điện thoại làm việc

,

điện thoại di động

,

‘NA’

)

phone

TỪ

dbo

.

tb_EmergencyContact

SQL Coalesce và cột được tính toán

Ví dụ sau sử dụng SQL COALESCE để so sánh các giá trị của các cột lương theo giờ, lương và hoa hồng và chỉ trả về giá trị không rỗng được tìm thấy trong các cột.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

TẠO

BẢNG

EMP

(

EMPNO < / p>

INT

KHÔNG

KHÔNG ĐỦ

,

TÊN

BIẾN HÌNH

(

20

)

,

CÔNG VIỆC

VARCHAR

(

10

)

,

MGR

INT

,

VIỆC LÀM

DATETIME

,

< p class = "crayon-i"> HOURLYWAGE

QUYẾT ĐỊNH

(

7

,

2 < / p>

)

,

LƯƠNG

QUYẾT ĐỊNH

(

7

,

2

)

,

NHIỆM VỤ

QUYẾT ĐỊNH

(

7

, < / p>

2

)

,

NUMSALES

QUYẾT ĐỊNH

(

7

,

2

)

,

DNO

INT

)

CHÈN

< p class = "crayon-h">

VÀO

EMP

GIÁ TRỊ

(

7369

,

‘SMITH’

,

‘CLERK’

,

7902

,

’02-MAR-1970′

,

NULL

,

8000

,

KHÔNG ĐỦ

,

20

,

2

)

,

(

7499

,

< p class = "crayon-h">

‘ALLEN’

,

‘SALESMAN’

,

7698

,

’20-MAR-1971′

,

NULL

,

1600

,

3000

,

4

,

3

)

,

(

7521

,

‘WARD’

,

‘SALESMAN’

,

7698

,

’07-FEB-1983′

,

40

,

1250

,

< / p>

5000

,

10

,

3

)

;

T-SQL sau đây được sử dụng để liệt kê tổng số tiền lương được trả cho tất cả nhân viên

1

2

3

4

5

CHỌN

EMPNO

,

TÊN

,

CAST

(

THAN

(

HOURLYWAGE

*

40

*

52 < / p>

,

lương

, < / p>

Mức lương

+

(

NHIỆM VỤ

*

SỐ BÁN HÀNG

)

)

NHƯ

thập phân

(

< p class = "crayon-cn"> 10

,

2

)

)

AS < / p>

TotalSalary

TỪ

dbo

.

EMP

ĐƠN ĐẶT HÀNG < / p>

BY

TotalSalary

;

Bây giờ, chúng ta hãy xem một ví dụ để tạo một cột được tính toán với hàm SQL Coalesce trong SQL Server

Nói chung, chúng ta có thể cần sử dụng biểu thức trong các bảng. Trong các bảng, yêu cầu tính toán các giá trị thường được tính bằng cách sử dụng một số cột hiện có và với ít giá trị vô hướng của bảng. Ngoài ra, các cột này phụ thuộc vào một hoặc nhiều cột khác. Bằng cách này, chúng ta có thể tạo một cột được tính toán bằng cách sử dụng hàm Coalesce SQL để các giá trị NULL được xử lý hiệu quả.

1

2

3

4

5

6

7

ALTER

BẢNG

dbo

.

EMP

THÊM

Total_Salary

NHƯ

CAST

(

THAN

(

HOURLYWAGE

*

40

*

< p class = "crayon-h">

52

,

lương

,

Mức lương

+

(

NHIỆM VỤ

*

SỐ BÁN HÀNG

)

)

NHƯ

thập phân

(

10

,

2

)

)

chọn

*

từ

EMP

Bây giờ, bạn có thể thấy rằng một câu lệnh SELECT đơn giản hiển thị các kết quả được tính toán trước.

Xem Thêm  Cách Căn trái, Phải & Căn giữa Văn bản trong HTML - bảng html căn trái

SQL COALESCE và biểu thức CASE

Hàm COALESCE trong SQL có thể được biểu diễn theo cú pháp bằng cách sử dụng biểu thức CASE. Ví dụ, như chúng ta biết, hàm Coalesce trả về các giá trị không phải NULL đầu tiên.

CHỌN COALESCE (biểu thức1, biểu thức2, biểu thức3) TỪ TABLENAME;

Câu lệnh Coalesce SQL ở trên có thể được viết lại bằng câu lệnh CASE.

1

2

3

4

5

6

7

8

9

10

11

12

CHỌN

tên đầu tiên

+

+

họ

tên đầy đủ

,

< / p>

mối quan hệ

,

TRƯỜNG HỢP

KHI NÀO

homephone

KHÔNG

KHÔNG ĐỦ

Sau đó

homephone

KHI NÀO

điện thoại di động

KHÔNG

KHÔNG < / p>

Sau đó

điện thoại di động

KHI NÀO

điện thoại làm việc

KHÔNG

KHÔNG ĐỦ

Sau đó

điện thoại làm việc

ELSE

‘NA’

HẾT

EmergencyContactNumber

FROM

dbo

.

tb_EmergencyContact

Truy vấn trả về kết quả giống như kết quả sử dụng hàm COALESCE.

Kết thúc

Trong bài viết này, chúng tôi đã thảo luận một số mẹo và thủ thuật để chứng minh việc sử dụng hàm SQL Coalesce để truy vấn hiệu quả với T-SQL. Chúng tôi cũng đã thảo luận về các trường hợp sử dụng khác nhau của hàm SQL Coalesce. Cũng có thể tối ưu hóa đầu ra bằng cách tạo một cột được tính toán.

Tôi hy vọng bạn thích bài viết này về hàm Coalesce trong SQL Server. Hãy đặt bất kỳ câu hỏi nào trong phần bình luận bên dưới.


Xem thêm những thông tin liên quan đến chủ đề kết hợp sử dụng trong sql

Cách Attach File Cơ sở dữ liệu vào SQL Server cực chi tiết

  • Tác giả: Top Manga
  • Ngày đăng: 2015-09-08
  • Đánh giá: 4 ⭐ ( 3316 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Duynv hướng dẫn cách Attach File Cơ sở dữ liệu vào SQL Server cực chi tiết, đơn giản, dễ thực hiện. Hướng dẫn sử dụng SQL Server. Xử lý lỗi attach file vào SQL Server.

Sử dụng Microsoft SQL Server một cách an toàn với Power Apps – Power Apps

  • Tác giả: docs.microsoft.com
  • Đánh giá: 5 ⭐ ( 5806 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tìm hiểu cách sử dụng SQL Server một cách an toàn với Power Apps.

Kết Nối Các Bảng Trong Sql Server, Truy Vấn Nhiều Bảng Với Join Trong Sql

  • Tác giả: chantamquoc.vn
  • Đánh giá: 5 ⭐ ( 3767 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Cách truy vấn nhiều bảng, sử dụng các loại JOIN như LEFT JOIN, RIGHT JOIN, INNER JOIN trong SQL để lấy dữ liệu kết hợp Truy vấn nhiều bảng, Tự khớp nối các bảng Một trong nhưng lợi ích chính của SQL là khả năng kết hợp dữ liệu từ hai hay nhiều bảng lại với nhau, Việc kết hợp các bảng lại như vậy gọi là JOIN, SQL sẽ tạo ra một bảng tạm thời chứa dữ liệu kết quả từ JOIN

JOIN Trong SQL

  • Tác giả: www.codehub.com.vn
  • Đánh giá: 4 ⭐ ( 6698 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mệnh đề `JOIN` được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên một cột có liên quan giữa chúng.

[SQLSERVER] Hướng dẫn sử dụng lệnh INTERSECT và EXCEPT phép hiệu và phép giao trong sql

  • Tác giả: laptrinhvb.net
  • Đánh giá: 4 ⭐ ( 6801 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài viết hôm nay, mình sẽ hướng dẫn các bạn sử dụng lệnh INTERSECT và EXCEPT trong Sql server.

Hướng dẫn sử dụng Transaction Trong SQL Server

  • Tác giả: expressmagazine.net
  • Đánh giá: 4 ⭐ ( 4643 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Transaction (giao dịch) được dùng để đảm bảo tính toàn vẹn dữ liệu khi xảy ra cập nhật (cập nhật xin được hiểu theo nghĩa rộng là các hành động sửa đổi dữ

[Tự học SQL] Sử dụng WHERE và AND, OR, Not, Order By với SELECT trong SQL

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 7079 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bài này cafedev chia sẻ cho ace về cách sử dụng Sử dụng WHERE và AND, OR, Not, Order By với câu lệnh SELECT trong SQL để lấy ra dữ liệu theo ý muốn của mình.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php