❶ sql怎么样查询以a或b开头的名字信息
select *
from your_table
where col_name like 'a%' or col_name like 'b%' ;
❷ 在sql查询字段中怎么去判断是以某字母开头
方法1:用%即可达到。
例如:SELECT*FROMusersWHEREemaillike"%b@email.com%"。
方法2:使用mysql字符串函数find_in_set();
SELECT*FROMusersWHEREfind_in_set('aa@email.com',email);
注意,mysql字符串函数find_in_set(str1,str2)返回str2中str1的位置索引,str2必须被分割成“,”。
方法3:多值模糊查询,使用mysql正则:REGEXP。
这个方法相当于(比如'%1%'或'%3%'或'%5%')。
从'by_content'中选择*,其中标题REGEXP'(1|,3|5)'。
(2)员工id以b开头的sql扩展阅读:
Mysql字符串函数:FIND_IN_SET()
语法:
strlistFIND_IN_SET(STR)
第一个参数STR是要查找的字符串。
第二个参数strlist是要搜索的字符串的逗号分隔列表。
如果字符串STR位于由N个子链组成的字符串行表中,则返回值的范围为1到N。
字符串行表是由','符号分隔的子链组成的字符串。如果第一个参数是常量字符串,第二个参数是类型集列,则FIND_IN_SET()函数被优化为使用位。
如果STR不在strlist中,或者strlist是空字符串,则返回值为0。如果任何参数为空,则返回值为空。当第一个参数包含逗号(',')时,此函数将无法正常工作。
❸ 用SQL计算年假的问题
select 员工ID,员工工号,员工姓名,入职日期,
case when DATEDIFF(mm,入职日期,getdate())<=3 then 0
when DATEDIFF(mm,入职日期,'2014-08-01') then a.剩于年假+DATEDIFF(mm,'2014-08-01',getdate())
else DATEDIFF(mm,入职日期,getdate() end as 可休年假
from 人事表 a
left join 截止年假剩余表 b on a.员工ID=b.员工ID
❹ 用一条SQL语句查询出所有员工姓名的字母前三位
sql中按姓名拼音排序
select
isnull(b.py,upper(left(a.username,1)))
as
py
,a.username
from
(
select
'a3'
as
username
union
select
username
from
usertable
--修改这里的姓名列~
)
a
left
outer
join
(
select
'a'
as
py,n'骜'
as
word,
n'啊'
as
sword
union
select
'b',n'簿',n'骜'
union
select
'c',n'错',n'簿'
union
select
'd',n'鵽',n'错'
union
select
'e',n'樲',n'鵽'
union
select
'f',n'鳆',n'樲'
union
select
'g',n'腂',n'鳆'
union
select
'h',n'夻',n'腂'
union
select
'j',n'攈',n'夻'
union
select
'k',n'穒',n'攈'
union
select
'l',n'鱳',n'穒'
union
select
'm',n'旀',n'鱳'
union
select
'n',n'桛',n'旀'
union
select
'o',n'沤',n'桛'
union
select
'p',n'曝',n'沤'
union
select
'q',n'囕',n'曝'
union
select
'r',n'鶸',n'囕'
union
select
's',n'蜶',n'鶸'
union
select
't',n'箨',n'蜶'
union
select
'w',n'鹜',n'箨'
union
select
'x',n'鑂',n'鹜'
union
select
'y',n'韵',n'鑂'
union
select
'z',n'咗',n'韵'
)
b
on
left(username,1)
between
b.sword
and
b.word
where
username<>'a3'
and
py='a'
--这里的and
py='a'是查询以a拼音开头的姓名,你可以
改成其他的,或者直接去掉就是查询所有的~
order
by
py
❺ sql 如果a表有人员Id ,b表有人员Id和部门Id ,那怎么把a表按部门Id分组,怎么写groupby
select b.部门Id,a.人员Id
from a as a,b as b
where a.人员Id =b.人员Id
group by b.部门Id,a.人员Id
❻ 超简单的SQL
那么改成下面的样子试试:
select b.dept_name,max(a.emp_gg)
from emp as a,dept as b
where a.emp_dept_id = b.dept_id
group by b.dept_name --注意,这里变了
order by max(a.emp_gg) desc
❼ 用一条SQL语句显示所有人员的姓名及所在部门
0分啊.......只给你第一题的代码好了
select 部门.部门ID,isnull(部门.部门名称,'未标志') ,人员.人员ID,人员.人员姓名
from 部门 right join 人员 on 人员.部门ID = 部门.部门ID
第二题以部门为数据源做一个DATAGRID,里面再套一个DATAGRID,以人员为数据源,使用第一个DATAGRID的部门ID为条件筛选。
❽ 给你一张员工表,然后再给你一张职位表, 然后要你写出这个职位所对应的平均工资进行降序排列。 sql怎写
不知道你的具体表结构是什么样的,
暂且设定工资列在员工表里,并且两表以员工ID进行关联,
则每个职位的平均工资的实现sql如下:
select avg(A.工资) xx
from 员工表 A,职位表 B
where A.员工ID=B.员工ID
group by B.职位
order by xx
❾ 关于员工详细信息sql的查询语句
sql server 的写法,参考下:
select b.departname,c.departname,a.username from usertable a
left join departtable b on a.departid=b.departid
left join departtable c on c.parentID=b.departid
这样查有可能出现的情况是 同一个人 出现在同一部门的多个科室,但不一定,因为不知道你部门表的数据结构是怎么的,初步就是这个方法。