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

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

1. La fonction SOMME permet de sommer les nombres d'une colonne ou d'un groupe de cellules, par exemple : =SOMME(A1:J10). 2. La fonction MOYENNE permet de calculer la moyenne des nombres dans une colonne ou un groupe de cellules, par exemple : =AVERAGE(A1:A10). 3. Fonction COUNT, utilisée pour compter le nombre de nombres ou de texte dans une colonne ou un groupe de cellules, par exemple : =COUNT(A1:A10) 4. Fonction IF, utilisée pour effectuer des jugements logiques basés sur des conditions spécifiées et renvoyer le résultat correspondant.

La gestion des exceptions en C++ peut être améliorée grâce à des classes d'exceptions personnalisées qui fournissent des messages d'erreur spécifiques, des informations contextuelles et effectuent des actions personnalisées en fonction du type d'erreur. Définissez une classe d'exception héritée de std::exception pour fournir des informations d'erreur spécifiques. Utilisez le mot-clé throw pour lancer une exception personnalisée. Utilisez Dynamic_cast dans un bloc try-catch pour convertir l'exception interceptée en un type d'exception personnalisé. Dans le cas réel, la fonction open_file lève une exception FileNotFoundException. La capture et la gestion de l'exception peuvent fournir un message d'erreur plus spécifique.

Lors du passage d'une carte à une fonction dans Go, une copie sera créée par défaut et les modifications apportées à la copie n'affecteront pas la carte d'origine. Si vous devez modifier la carte originale, vous pouvez la passer via un pointeur. Les cartes vides doivent être manipulées avec précaution, car ce sont techniquement des pointeurs nuls, et passer une carte vide à une fonction qui attend une carte non vide provoquera une erreur.

Il existe les étapes suivantes pour interagir avec les données JSON via SQL dans Golang : Utilisez la fonction json.Unmarshal pour analyser les données JSON dans une structure Go et convertir JSON en structure. Utilisez le package database/sql pour accéder et exploiter les bases de données SQL et effectuer des opérations telles que des insertions et des requêtes. En combinant les étapes ci-dessus, vous pouvez créer une application basée sur SQL et JSON dans Go pour implémenter des fonctions telles que l'enregistrement et la connexion des utilisateurs.

Vous ne parvenez pas à lire votre livre préféré dans l'application Livres ? Comme d'autres applications natives sur iOS, l'application Livres peut également rencontrer certains problèmes. Si l'application Livres ne fonctionne pas correctement, vous devez commencer par forcer la fermeture de l'application Livres. Si cette méthode simple ne résout pas l'application, suivre les étapes restantes devrait résoudre le problème. Correctif 1 – Forcer la fermeture de l’application Livres Forcer la fermeture de l’instance de l’application Livres sur iPhone. Étape 1 – Ouvrez l'application Livres. S'il ne s'applique pas ou continue de planter, ignorez-le. Étape 2 – Ensuite, pendant que l'instance de l'application Livres est ouverte, faites glisser votre doigt depuis le coin inférieur gauche de votre téléphone. Étape 3 – Vous pouvez y afficher toutes les applications ouvertes. Faites glisser votre doigt vers le haut pour désactiver chacun

La valeur de retour de la fonction est cruciale en C++, car elle permet à la fonction de renvoyer des données d'un type spécifié : le type de valeur de retour définit le type de données renvoyées par la fonction, y compris les types de base (tels que int, float) et les types personnalisés (tels que pointeurs, références). La signification de la valeur de retour varie en fonction de l'intention de la fonction, comme renvoyer un résultat, indiquer un statut, fournir une référence ou créer un nouvel objet.

En Go, les méthodes fonctionnent généralement mieux que les fonctions car elles accèdent directement aux champs de type récepteur et évitent la copie des données. Les méthodes sont principalement utilisées pour opérer sur les valeurs du type de récepteur, tandis que les fonctions effectuent des tâches indépendantes d'un type spécifique. Les benchmarks montrent que les méthodes sont environ 30 % plus rapides que les fonctions. Par conséquent, il est recommandé de préférer les méthodes lors de l’examen des performances, mais les fonctions restent utiles lorsque la flexibilité est requise ou lors de l’exécution de tâches non liées à un type spécifique.

Les techniques avancées de la fonction Go incluent : Fermeture : utilisée pour accéder à des variables définies en externe, qui peuvent encapsuler l'état et créer des variables privées. Fonction anonyme : fonction sans nom utilisée pour les opérations ponctuelles, adaptée aux rappels, à la gestion des événements et au filtrage. Type de fonction : définissez la signature de fonction, qui peut stocker et transférer les valeurs de fonction pour des scénarios tels que la comparaison et le tri.
