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

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











Go 언어는 클로저와 리플렉션이라는 두 가지 동적 함수 생성 기술을 제공합니다. 클로저는 클로저 범위 내의 변수에 대한 액세스를 허용하며 리플렉션은 FuncOf 함수를 사용하여 새 함수를 생성할 수 있습니다. 이러한 기술은 HTTP 라우터를 사용자 정의하고 고도로 사용자 정의 가능한 시스템을 구현하며 플러그 가능한 구성 요소를 구축하는 데 유용합니다.

1. SUM 함수는 열이나 셀 그룹의 숫자를 합하는 데 사용됩니다(예: =SUM(A1:J10)). 2. AVERAGE 함수는 열이나 셀 그룹에 있는 숫자의 평균을 계산하는 데 사용됩니다(예: =AVERAGE(A1:A10)). 3. COUNT 함수, 열이나 셀 그룹의 숫자나 텍스트 수를 세는 데 사용됩니다. 예: =COUNT(A1:A10) 4. IF 함수, 지정된 조건을 기반으로 논리적 판단을 내리고 결과를 반환하는 데 사용됩니다. 해당 결과.

C++의 예외 처리는 특정 오류 메시지, 상황별 정보를 제공하고 오류 유형에 따라 사용자 지정 작업을 수행하는 사용자 지정 예외 클래스를 통해 향상될 수 있습니다. 특정 오류 정보를 제공하려면 std::Exception에서 상속된 예외 클래스를 정의하세요. 사용자 정의 예외를 발생시키려면 throw 키워드를 사용하십시오. try-catch 블록에서 Dynamic_cast를 사용하여 발견된 예외를 사용자 지정 예외 유형으로 변환합니다. 실제 경우 open_file 함수는 FileNotFoundException 예외를 발생시킵니다. 예외를 포착하고 처리하면 보다 구체적인 오류 메시지가 제공될 수 있습니다.

Go의 함수에 지도를 전달하면 기본적으로 복사본이 생성되며 복사본을 수정해도 원본 지도에는 영향을 미치지 않습니다. 원본 지도를 수정해야 하는 경우 포인터를 통해 전달할 수 있습니다. 빈 맵은 기술적으로 nil 포인터이기 때문에 주의해서 처리해야 하며, 비어 있지 않은 맵을 기대하는 함수에 빈 맵을 전달하면 오류가 발생합니다.

Golang에서 SQL을 통해 JSON 데이터와 상호작용하는 단계는 다음과 같습니다. json.Unmarshal 함수를 사용하여 JSON 데이터를 Go 구조로 구문 분석하고 JSON을 구조로 변환합니다. 데이터베이스/sql 패키지를 사용하여 SQL 데이터베이스에 액세스 및 작동하고 삽입 및 쿼리와 같은 작업을 수행합니다. 위의 단계를 결합하면 Go에서 SQL 및 JSON 기반 애플리케이션을 구축하여 사용자 등록 및 로그인과 같은 기능을 구현할 수 있습니다.

북 앱에서 좋아하는 책을 읽을 수 없나요? iOS의 다른 기본 앱과 마찬가지로 Books 앱에도 몇 가지 문제가 발생할 수 있습니다. 북 앱이 제대로 작동하지 않으면 북 앱을 강제 종료하여 시작해야 합니다. 이 간단한 방법으로 애플리케이션이 해결되지 않으면 나머지 단계를 수행하면 문제가 해결됩니다. 수정 1 – Books App 강제 닫기 iPhone에서 Books 앱 인스턴스를 강제로 닫습니다. 1단계 – 도서 앱을 엽니다. 적용되지 않거나 계속 충돌하는 경우 무시하십시오. 2단계 – 다음으로 북 앱 인스턴스가 열려 있는 동안 휴대폰 왼쪽 하단에서 스와이프합니다. 3단계 – 열려 있는 모든 애플리케이션을 볼 수 있습니다. 위로 스와이프하여 각 기능을 끄세요.

Go 언어에서 함수는 객체 지향 프로그래밍에서 핵심 역할을 합니다. 캡슐화: 동작과 객체 운영을 캡슐화합니다. 작업: 필드 값 수정, 작업 수행 등 개체에 대한 작업을 수행합니다.

함수와 메소드는 Go 언어에서 서로 다른 개념입니다. 수신자: 함수에는 수신자가 없지만 메소드에는 수신자가 있습니다. 호출성: 함수는 유형 이름으로만 호출할 수 있는 반면, 메소드는 유형 또는 변수 이름으로 호출할 수 있습니다. 접근 제어: 함수는 매개변수와 전역 변수에만 접근할 수 있는 반면, 메소드는 수신자의 비공개 필드에 접근할 수 있습니다.
