ホームページ データベース mysql チュートリアル SQL Server COALESCE()函数的创新应用

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

Jun 07, 2016 pm 03:04 PM
c coalesce server sql 関数 革新 応用

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()放在一个函数中来使用它,也可以通过将它放在一个单独的计算列中优化性能,并总能获得结果

本文作者:

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Excel関数の公式の完全なコレクション Excel関数の公式の完全なコレクション May 07, 2024 pm 12:04 PM

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

C++ 関数例外の詳細: カスタマイズされたエラー処理 C++ 関数例外の詳細: カスタマイズされたエラー処理 May 01, 2024 pm 06:39 PM

C++ の例外処理は、特定のエラー メッセージ、コンテキスト情報を提供し、エラーの種類に基づいてカスタム アクションを実行するカスタム例外クラスを通じて強化できます。 std::Exception から継承した例外クラスを定義して、特定のエラー情報を提供します。カスタム例外をスローするには、throw キーワードを使用します。 try-catch ブロックでdynamic_castを使用して、キャッチされた例外をカスタム例外タイプに変換します。実際の場合、open_file 関数は FileNotFoundException 例外をスローします。例外をキャッチして処理すると、より具体的なエラー メッセージが表示されます。

Golang関数がマップパラメータを受け取る際の注意点 Golang関数がマップパラメータを受け取る際の注意点 Jun 04, 2024 am 10:31 AM

Go の関数にマップを渡すと、デフォルトでコピーが作成され、コピーへの変更は元のマップには影響しません。元のマップを変更する必要がある場合は、ポインタを介してそれを渡すことができます。空のマップは技術的には nil ポインターであり、空ではないマップを期待する関数に空のマップを渡すとエラーが発生するため、空のマップは慎重に扱う必要があります。

Golang で SQL を使用して JSON データを操作するにはどうすればよいですか? Golang で SQL を使用して JSON データを操作するにはどうすればよいですか? Jun 03, 2024 am 11:47 AM

Golang で SQL を介して JSON データを操作するには、次の手順があります。 json.Unmarshal 関数を使用して、JSON データを Go 構造に解析し、JSON を構造に変換します。 Database/sql パッケージを使用して、SQL データベースにアクセスして操作し、挿入やクエリなどの操作を実行します。上記の手順を組み合わせることで、Go で SQL と JSON をベースにしたアプリケーションを構築し、ユーザー登録やログインなどの機能を実装できます。

iPhone で書籍アプリが動作しない: 修正方法 iPhone で書籍アプリが動作しない: 修正方法 May 03, 2024 pm 09:07 PM

ブック アプリでお気に入りの本を読むことができませんか? iOS の他のネイティブ アプリと同様に、ブックス アプリもいくつかの問題に直面する可能性があります。ブック アプリが正常に動作しない場合は、まずブック アプリを強制的に終了する必要があります。この簡単な方法でアプリケーションが解決しない場合は、残りの手順に従って問題を解決する必要があります。解決策 1 – ブック アプリを強制的に閉じる iPhone からブック アプリ インスタンスを強制的に閉じます。ステップ 1 – ブック アプリを開きます。適用されない場合、またはクラッシュし続ける場合は、無視してください。ステップ 2 – 次に、ブックス アプリのインスタンスが開いている間に、携帯電話の左下隅からスワイプします。ステップ 3 – 開いているすべてのアプリケーションを表示できます。上にスワイプしてそれぞれをオフにします

C++ での関数の戻り値の使用: 種類と意味の説明 C++ での関数の戻り値の使用: 種類と意味の説明 May 01, 2024 am 08:27 AM

C++ では、関数の戻り値が非常に重要です。これにより、関数は指定された型のデータを返すことができます。戻り値の型は、基本型 (int、float など) やカスタム型 (など) を含む、関数によって返されるデータの型を定義します。ポインタ、参照)。戻り値の意味は、結果を返す、ステータスを示す、参照を提供する、新しいオブジェクトを作成するなど、関数の意図に応じて異なります。

golang のメソッドと関数のパフォーマンスの違いは何ですか? golang のメソッドと関数のパフォーマンスの違いは何ですか? Apr 27, 2024 am 09:42 AM

Go では、メソッドは受信側の型フィールドに直接アクセスし、データのコピーを避けるため、一般に関数よりもパフォーマンスが優れています。メソッドは主に受信者の型値を操作するために使用されますが、関数は特定の型に関係なくタスクを実行します。ベンチマークによると、メソッドは関数よりも約 30% 高速です。したがって、パフォーマンスを考慮する場合はメソッドを優先することをお勧めしますが、柔軟性が必要な場合や、特定のタイプに関連しないタスクを実行する場合には、関数も役立ちます。

golang 関数のカスタム実装のための高度なテクノロジー golang 関数のカスタム実装のための高度なテクノロジー Apr 28, 2024 am 08:54 AM

高度な Go 関数テクニックには次のものがあります。 クロージャ: 外部で定義された変数にアクセスするために使用され、状態をカプセル化し、プライベート変数を作成できます。匿名関数: 1 回限りの操作に使用される名前のない関数。コールバック、イベント処理、フィルタリングに適しています。関数タイプ: 比較や並べ替えなどのシナリオで関数値を保存および転送できる関数シグネチャを定義します。

See all articles