Rumah pangkalan data tutorial mysql SQL Server COALESCE()函数的创新应用

SQL Server COALESCE()函数的创新应用

Jun 07, 2016 pm 03:04 PM
c coalesce server sql fungsi inovasi permohonan

COALESCE()函数可以接受一系列的值,如果列表中所有项都为空(null),那么只使用一个值。然后,它将返回第一个非空值。这一技巧描述了创造性使用SQL Server 中COALESCE()函数的两种方法。 这里有一个简单的例子:有一个Persons数据表,它有三个字段FirstNam


COALESCE()函数可以接受一系列的值,如果列表中所有项都为空(null),那么只使用一个值。然后,它将返回第一个非空值。这一技巧描述了创造性使用SQL Server 中COALESCE()函数的两种方法。

这里有一个简单的例子:有一个Persons数据表,它有三个字段FirstName、MiddleName和LastName。表中包含以下值:

John A. MacDonald

Franklin D. Roosevelt

Madonna

Cher

Mary Weilage

如果你想用一个字符串列出他们的全名,下面给出了如何使用COALESCE()函数完成此功能:

SELECT FirstName + '' '' +COALESCE(MiddleName,'''')+ '' '' +COALESCE(LastName,'''')

如果你不想每个查询都这样写,列表A显示了如何将它转换成一个函数。这样当你需要使用这个脚本的时候(不管每个列的实际值是什么),可以直接调用该函数并传递三个字段参数。在下面的例子中,我传递给函数的参数是人名,但是你可以用字段名替代得到同样的结果:

SELECT dbo.WholeName(''James'',NULL,''Bond'')

UNION

SELECT dbo.WholeName(''Cher'',NULL,NULL)

UNION

SELECT dbo.WholeName(''John'',''F.'',''Kennedy'')

测试结果如下:

James Bond

Cher

John F. Kennedy

你可能会注意到我们的一个问题,在James Bond这个名字中有两个空格。通过修改@result这一行可以改正这个问题,如下所示:

SELECT @Result = LTRIM(@first + '' '' + COALESCE(@middle,'''') + '' '') + COALESCE(@last,'''')

下面是COALESCE()函数的另一个应用。在本例中,我们将显示一个支付给员工的工资单。问题是对于不同的员工工资标准是不同的(例如,有些员工是按小时支付,按工作量每周发一次工资或是按责任支付)。列表B中是创建一个样表的代码。下面是一些示例记录,每个是一种类型:

1 18.00 40 NULL NULL NULL NULL

2 NULL NULL 4.00 400 NULL NULL

3 NULL NULL NULL NULL 800.00 NULL

4 NULL NULL NULL NULL 500.00 600

用下面的代码在同一列中列出支付给员工的总额(不管它们的支付标准):

SELECT

EmployeeID,

COALESCE(HourlyWage * HoursPerWeek,0)+

COALESCE(AmountPerPiece * PiecesThisWeek,0)+

COALESCE(WeeklySalary + CommissionThisWeek,0)AS Payment

FROM [Coalesce_Demo].[PayDay]

结果如下:

EmployeeID Payment

1 720.00

2 1600.00

3 800.00

4 1100.00

你可能需要在应用程序中多处使用这一计算方法,虽然这种表示可以完成任务,但是看起来不是很美观。下面列出了如何使用一个单独的求和列来完成这项工作:

ALTERTABLE Coalesce_Demo.PayDay

ADD Payment AS

COALESCE(HourlyWage * HoursPerWeek,0)+

COALESCE(AmountPerPiece * PiecesThisWeek,0)+

COALESCE(WeeklySalary + CommissionThisWeek,0)

这样只要使用SELECT *就可以显示预先计算好的结果。

小结

本文介绍了使用COALESCE()函数一些特殊场合和特殊方式。就我的经验看来,COALESCE()函数最常出现在一个具体的内容中,如一个查询或视图或存储过程中。

你可以将COALESCE()放在一个函数中来使用它,也可以通过将它放在一个单独的计算列中优化性能,并总能获得结果

本文作者:

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Koleksi lengkap formula fungsi excel Koleksi lengkap formula fungsi excel May 07, 2024 pm 12:04 PM

1. Fungsi SUM digunakan untuk menjumlahkan nombor dalam lajur atau sekumpulan sel, contohnya: =SUM(A1:J10). 2. Fungsi AVERAGE digunakan untuk mengira purata nombor dalam lajur atau sekumpulan sel, contohnya: =AVERAGE(A1:A10). 3. Fungsi COUNT, digunakan untuk mengira bilangan nombor atau teks dalam lajur atau sekumpulan sel, contohnya: =COUNT(A1:A10) 4. Fungsi IF, digunakan untuk membuat pertimbangan logik berdasarkan syarat yang ditentukan dan mengembalikan hasil yang sepadan.

Pengecualian Fungsi C++ Lanjutan: Pengendalian Ralat Tersuai Pengecualian Fungsi C++ Lanjutan: Pengendalian Ralat Tersuai May 01, 2024 pm 06:39 PM

Pengendalian pengecualian dalam C++ boleh dipertingkatkan melalui kelas pengecualian tersuai yang menyediakan mesej ralat khusus, maklumat kontekstual dan melaksanakan tindakan tersuai berdasarkan jenis ralat. Tentukan kelas pengecualian yang diwarisi daripada std::exception untuk memberikan maklumat ralat tertentu. Gunakan kata kunci lontaran untuk membuang pengecualian tersuai. Gunakan dynamic_cast dalam blok try-catch untuk menukar pengecualian yang ditangkap kepada jenis pengecualian tersuai. Dalam kes sebenar, fungsi open_file membuang pengecualian FileNotFoundException Menangkap dan mengendalikan pengecualian boleh memberikan mesej ralat yang lebih spesifik.

Perkara yang perlu diambil perhatian apabila fungsi Golang menerima parameter peta Perkara yang perlu diambil perhatian apabila fungsi Golang menerima parameter peta Jun 04, 2024 am 10:31 AM

Apabila menghantar peta ke fungsi dalam Go, salinan akan dibuat secara lalai dan pengubahsuaian pada salinan tidak akan menjejaskan peta asal. Jika anda perlu mengubah suai peta asal, anda boleh menghantarnya melalui penuding. Peta kosong perlu dikendalikan dengan berhati-hati, kerana ia secara teknikal adalah penunjuk sifar, dan menghantar peta kosong kepada fungsi yang menjangkakan peta tidak kosong akan menyebabkan ralat.

Bagaimana untuk berinteraksi dengan data JSON menggunakan SQL dalam Golang? Bagaimana untuk berinteraksi dengan data JSON menggunakan SQL dalam Golang? Jun 03, 2024 am 11:47 AM

Terdapat langkah berikut untuk berinteraksi dengan data JSON melalui SQL dalam Golang: Gunakan fungsi json.Unmarshal untuk menghuraikan data JSON ke dalam struktur Go dan menukar JSON kepada struktur. Gunakan pakej pangkalan data/sql untuk mengakses dan mengendalikan pangkalan data SQL dan melaksanakan operasi seperti sisipan dan pertanyaan. Menggabungkan langkah di atas, anda boleh membina aplikasi berdasarkan SQL dan JSON dalam Go untuk melaksanakan fungsi seperti pendaftaran pengguna dan log masuk.

Apl Buku tidak berfungsi pada iPhone: Cara membetulkannya Apl Buku tidak berfungsi pada iPhone: Cara membetulkannya May 03, 2024 pm 09:07 PM

Tidak boleh membaca buku kegemaran anda dalam apl Buku? Seperti apl asli lain pada iOS, apl Buku juga mungkin menghadapi beberapa isu. Jika apl Buku tidak berfungsi dengan betul, anda harus bermula dengan menutup paksa apl Buku. Jika kaedah mudah ini tidak menyelesaikan aplikasi, mengikut langkah yang selebihnya harus menyelesaikan isu tersebut. Betulkan 1 – Paksa Tutup Buku Apl Paksa tutup contoh apl Buku daripada iPhone. Langkah 1 – Buka apl Buku. Jika ia tidak terpakai atau terus ranap, abaikan ia. Langkah 2 – Seterusnya, semasa contoh apl Buku dibuka, leret dari sudut kiri bawah telefon anda. Langkah 3 – Anda boleh melihat semua aplikasi terbuka di sana. Leret ke atas untuk mematikan setiap satu

Menggunakan nilai pulangan fungsi dalam C++: jenis dan makna dijelaskan Menggunakan nilai pulangan fungsi dalam C++: jenis dan makna dijelaskan May 01, 2024 am 08:27 AM

Nilai pulangan fungsi adalah penting dalam C++, yang membolehkan fungsi mengembalikan data jenis yang ditentukan: jenis nilai pulangan mentakrifkan jenis data yang dikembalikan oleh fungsi, termasuk jenis asas (seperti int, float) dan jenis tersuai (seperti petunjuk, rujukan). Makna nilai pulangan berbeza-beza berdasarkan niat fungsi, seperti mengembalikan hasil, menunjukkan status, menyediakan rujukan atau mencipta objek baharu.

Teknologi canggih untuk pelaksanaan tersuai fungsi golang Teknologi canggih untuk pelaksanaan tersuai fungsi golang Apr 28, 2024 am 08:54 AM

Teknik fungsi Advanced Go termasuk: Penutupan: digunakan untuk mengakses pembolehubah yang ditentukan secara luaran, yang boleh merangkum keadaan dan mencipta pembolehubah persendirian. Fungsi tanpa nama: Fungsi tanpa nama yang digunakan untuk operasi sekali, sesuai untuk panggilan balik, pengendalian acara dan penapisan. Jenis fungsi: Tentukan tandatangan fungsi, yang boleh menyimpan dan memindahkan nilai fungsi untuk senario seperti perbandingan dan pengisihan.

Apakah perbezaan prestasi antara kaedah dan fungsi dalam golang? Apakah perbezaan prestasi antara kaedah dan fungsi dalam golang? Apr 27, 2024 am 09:42 AM

Dalam Go, kaedah umumnya berprestasi lebih baik daripada fungsi kerana ia mengakses terus medan jenis penerima dan mengelakkan penyalinan data. Kaedah digunakan terutamanya untuk beroperasi pada nilai jenis penerima, manakala fungsi melaksanakan tugas bebas daripada jenis tertentu. Penanda aras menunjukkan bahawa kaedah adalah kira-kira 30% lebih pantas daripada fungsi. Oleh itu, adalah disyorkan untuk memilih kaedah apabila mempertimbangkan prestasi, tetapi fungsi masih berguna apabila fleksibiliti diperlukan atau apabila melaksanakan tugas yang tidak berkaitan dengan jenis tertentu.

See all articles