• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SQL Server 搜索技巧随记

mysql 搞代码 4年前 (2022-01-09) 22次浏览 已收录 0个评论

平时做项目过程中,会遇到各种问题,如 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)asbegin	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 a<p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p>nd 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.……………………

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SQL Server 搜索技巧随记

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址