SELECT * FROM tblUser ORDER BY CHARINDEX(userDepartment, '财务部,总经理室,商业客户,公司领导') DESC SELECT * FROM tblUser ORDER BY CHARINDEX(userDepartment, '公司领导,商业客户,总经理室,财务部') 都可以。
建立一个部门排序级别表department: Department 部门 orderid 排序级别 Department orderid 公司领导 1 商业客户 2 总经理室 3 财务部 4 ......SELECT * FROM tblUser A left join department B on A.userDepartment = Department ORDER BY B.orderid
你自己写的就可以呀。 CHARINDEX 返回字符串中指定表达式的起始位置
SELECT *,CHARINDEX(userDepartment, '公司领导,商业客户,总经理室,财务部') FROM tblUser ORDER BY CHARINDEX(userDepartment, '公司领导,商业客户,总经理室,财务部') 这样看一下你就明白了。:)
对的排部门是什么意思呢是不是 order by userDepartment
SELECT * FROM tblUser ORDER BY CHARINDEX(userDepartment, '财务部,总经理室,商业客户,公司领导') DESC 这个是对的,这个写法就是对的
select [name],left([name],1),CHARINDEX(left([name],1), '王李张') from employee where left([name],1) in ( '王','李','张') order by CHARINDEX(left([name],1), '王李张')
SELECT * FROM tblUser ORDER BY CASE userDepartment WHEN '财务部' then 1 WHEN '总经理室' then 2 WHEN '商业客户' then 3 WHEN '公司领导' then 4 END
谢谢大家的帮助,现在问题是: id name userDept 1 a 公司领导 2 b 公司领导 3 c 总经理室 SELECT * FROM tblUser ORDER BY CHARINDEX(userDepartment, '财务部,总经理室,商业客户,公司领导') DESC 这样写,“公司领导”会出现二次,我想一个部门出现一次,并且按给定部门顺序排列。 加distinct 是不行了,因为已经使用了order by,我该如何写句子呢?
select * from tblUser tem where id=(select min(id) from tblUser where userDept=tem.userDept) ORDER BY CHARINDEX(userDepartment, '财务部,总经理室,商业客户,公司领导') DESC
返回a在b中的开始位置。按位置的顺序排列是对的。
Department 部门
orderid 排序级别 Department orderid
公司领导 1
商业客户 2
总经理室 3
财务部 4
......SELECT * FROM tblUser A left join department B
on A.userDepartment = Department ORDER BY B.orderid
CHARINDEX
返回字符串中指定表达式的起始位置
from employee
where left([name],1) in ( '王','李','张')
order by CHARINDEX(left([name],1), '王李张')
SELECT * FROM tblUser
ORDER BY
CASE userDepartment WHEN '财务部' then 1
WHEN '总经理室' then 2
WHEN '商业客户' then 3
WHEN '公司领导' then 4
END
id name userDept
1 a 公司领导
2 b 公司领导
3 c 总经理室
SELECT * FROM tblUser ORDER BY CHARINDEX(userDepartment, '财务部,总经理室,商业客户,公司领导') DESC
这样写,“公司领导”会出现二次,我想一个部门出现一次,并且按给定部门顺序排列。
加distinct 是不行了,因为已经使用了order by,我该如何写句子呢?