데이터 베이스 MySQL 튜토리얼 SQL Server 搜索技巧随记

SQL Server 搜索技巧随记

Jun 07, 2016 pm 03:16 PM
server sql 기능 찾다 프로젝트

平时做项目过程中,会遇到各种问题,如 SQL Server 中的查询,有时一些棘手的问题,可能最终解决,但会费很大的劲,但如果了解某些技巧,却能事半功倍。 1、空记录的处理。 之前在做机房收费系统时,日结账单中,需要对数据汇总,但汇总结果可能为Null,那么

        平时做项目过程中,会遇到各种问题,如 SQL Server 中的查询,有时一些棘手的问题,可能最终解决,但会费很大的劲,但如果了解某些技巧,却能事半功倍。


1、空记录的处理。

        之前在做机房收费系统时,日结账单中,需要对数据汇总,但汇总结果可能为Null,那么如何把这种情况下的Null转成0呢?在客户端程序中进行处理?那肯定比较费事!有没有更好的办法?——这时可以用到Isnull(,)函数。如:
-- =============================================
-- Author:		张连海
-- Create date: 2013.09.28
-- Description:	用于机房收费系统中结账,查询相应的信息
-- =============================================
ALTER procedure [dbo].[Proc_SelectAccounts]
	@operateUserName varchar(20),
	@isSettleAccounts varchar(10)
as
begin
	select
		(select isnull(count(cardNo),0) from T_Register where regUser =@operateUserName and isSettleAccounts=@isSettleAccounts) as '售卡张数',
		(select isnull(count(cardNo),0) from T_AbsentCard where abCardUser =@operateUserName and isSettleAccounts=@isSettleAccounts) as '退卡张数',
		(select isnull(sum(recMoney),0) from T_Recharge where recUser=@operateUserName and isSettleAccounts=@isSettleAccounts) as '充值金额',
		(select isnull(sum(abCardMoney),0) from T_AbsentCard where abCardUser=@operateUserName and isSettleAccounts=@isSettleAccounts) as '退卡金额',
		(select isnull(count(cardNo),0) from T_Register where regUser =@operateUserName) as '总售卡张数'
End
로그인 후 복사

2.insert一句话实现插入一条数据并且返回这条数据的某列 。
        在做“善良公社”项目时,用到关系表,其中在往别的表里添加数据时,插入一条数据之后(ID为自动增长列),返回该条数据的ID,再存入该关系表。最好插入和返回不存在时间差。即:不选择先INSERT然后再SELECT,有无根据sql server机制,直接插入的同时返回。

<span>--可使用如下代码:</span>
insert into [table] output inserted.columnName values()
--举例:
insert into 用户信息表 (name) output inserted.id values(张三)
로그인 후 복사

3.实现是1 或0 想显示为男或女

        数据库对于数据的存储可能会用到某种标记,比如“1”表示“男”,“0”表示“女”;“Y”表示“已结账”,“N”表示“未结账”,如何在查询时进行自动转换?

select name,Sex=(case Sex when '1' then '男' when '0' then '女' end) from Tablename
로그인 후 복사

4.按姓氏笔画排序

        我们在书籍的鸣谢中或参与人员中,经常看到人名是按姓氏笔画进行排序的。那么SQL Server中如何实现?

Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as
로그인 후 복사


5.……………………

        

        学习在继续,随记在继续。点点滴滴,相信定会汇成江海!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까? Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까? Apr 17, 2024 pm 02:57 PM

Hibernate 프레임워크에서 HQL과 SQL의 차이점은 무엇입니까?

AI는 페르마의 마지막 정리를 정복할 수 있을까? 100페이지의 증거를 코드로 만들기 위해 5년의 경력을 포기한 수학자 AI는 페르마의 마지막 정리를 정복할 수 있을까? 100페이지의 증거를 코드로 만들기 위해 5년의 경력을 포기한 수학자 Apr 09, 2024 pm 03:20 PM

AI는 페르마의 마지막 정리를 정복할 수 있을까? 100페이지의 증거를 코드로 만들기 위해 5년의 경력을 포기한 수학자

Win11 팁 공유: Microsoft 계정으로 로그인을 건너뛰는 한 가지 요령 Win11 팁 공유: Microsoft 계정으로 로그인을 건너뛰는 한 가지 요령 Mar 27, 2024 pm 02:57 PM

Win11 팁 공유: Microsoft 계정으로 로그인을 건너뛰는 한 가지 요령

WPS 테이블에서 검색 중인 데이터를 찾을 수 없습니다. 검색 옵션 위치를 확인하세요. WPS 테이블에서 검색 중인 데이터를 찾을 수 없습니다. 검색 옵션 위치를 확인하세요. Mar 19, 2024 pm 10:13 PM

WPS 테이블에서 검색 중인 데이터를 찾을 수 없습니다. 검색 옵션 위치를 확인하세요.

초보자를 위한 양식 작성 요령은 무엇입니까? 초보자를 위한 양식 작성 요령은 무엇입니까? Mar 21, 2024 am 09:11 AM

초보자를 위한 양식 작성 요령은 무엇입니까?

베테랑의 필수품: C 언어의 * 및 &에 대한 팁과 주의사항 베테랑의 필수품: C 언어의 * 및 &에 대한 팁과 주의사항 Apr 04, 2024 am 08:21 AM

베테랑의 필수품: C 언어의 * 및 &에 대한 팁과 주의사항

VSCode 시작 가이드: 초보자가 사용 기술을 빠르게 익히기 위해 꼭 읽어야 할 책입니다! VSCode 시작 가이드: 초보자가 사용 기술을 빠르게 익히기 위해 꼭 읽어야 할 책입니다! Mar 26, 2024 am 08:21 AM

VSCode 시작 가이드: 초보자가 사용 기술을 빠르게 익히기 위해 꼭 읽어야 할 책입니다!

엑셀 검색 바로가기 키란 무엇인가요? 엑셀 검색 바로가기 키란 무엇인가요? Mar 20, 2024 am 10:52 AM

엑셀 검색 바로가기 키란 무엇인가요?

See all articles