Sql 查询技巧 优先输出某结果
SELECT EMP_ID,EMP_NO,LOGIN_NAME,EMP_NAME,SITE_CODE,DEPT_CODE,
JOB_DESC,HRMS_DEPT_CODE,MAIL_ACCOUNT,EXT_NO ,
(case when SITE_CODE='QCS' then 1 else 2 end) site
from dbo.AM_EMPLOYEE
WHERE ACTIVE = 'Y' AND EXT_NO = '6006'
order by site
想要在员工表中查出电话号为6006的员工的英文名来作为系统页面上输入电话号带出该同仁英文名。
而当前系统中电话号为6006有多笔记录,有QCS的某A,QCH的某B,QTY的某C,
而当前系统只需输入QCS的结果,所以用上述语句优先输出QCS的。
相关文档:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER function [dbo].[Get_StrArrayStrOfIndex]
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
de ......
在有时候使用in语句查询的时候,in语句中很多项,如15项,自己同时想让查询出来结果能够按照in语句中该字段顺序查询出来。
而Sql Server是默认按照自己的顺序排列出来的,所以一定会把结果集重新排序的。
而如果使用case when的方法虽然很繁琐,但也是可以实现的
select item_code,apply_dep ......
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varch ......