⑴ sql2005中有没有switch语句啊
case '字段' when (字段= 值1) then 结果
when (字段=值2) then 结果
else 结果
end
⑵ sql查询语句 tise什么意思
没有这个语句的,可能是你的数据库的列名吧。sql只有case 和switch
SQL语句中的CASE语句与高级语言中的switch语句,是标准SQL的语法,适用与一个条件判断有多种值的情况下分别执行不同的操作
灵活应用CASE语句可以使SQL语句变得简洁易读.
Case 使用方法:
Case具有两种格式。简单Case函数
和Case搜索函数。 --简单Case
函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
--比如说,下面这段SQL,你永远无法得到“第二类”这个结果
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一类'
WHEN col_1 IN ('a') THEN '第二类'
ELSE'其他' END
⑶ SQL语句怎样查询一个范围
SQL方法完成数值区间查询
要求:根据奖金等级表的数值区间,返回奖金对应的等级。
1、链接外部数据:数据--现有链接--浏览更多,在路径中选择数据Excel文件和目标工作表,建立数据链接。
详细步骤参考前面所发的SQL相关文章。
2、编写sql语句。
2.1、使用switch函数,SQL语句为:
select 姓名,奖金,switch(奖金<200,"D级",奖金<300,"C级",奖金<500,"B级",奖金>=500,"A级") as 奖金等级 from [奖金$a1:b11]
switch函数直接判断数值,若数值小于200,返回D级;数值小于300返回C级;数值小于500,返回B级;余下的数值条件要变化为>=500返回A级而不是<=700。
2.2、使用iif函数,SQL语句为:
select 姓名,奖金,iif(奖金<200,"D级",iif(奖金<300,"C级",iif(奖金<500,"B级","A级"))) as 奖金等级 from [奖金$a1:b11]
其基本思路和switch函数相同,类似工作表函数if的嵌套。
2.3、使用betweent...and,SQ语句为:
select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 between b.最小值 and b.最大值
以戴苏明同学为例子,在SQL代码运行的时候,将戴苏明同学的奖金一一和奖金等级表中的数值进行对比,符合区间的就返回区间等级。其他同学亦然。
但是,当奖金超出最大值700的时候就会取不到该条数据。
如刘平的奖金701并不在betweent...and的区间内,返回的结果中没有刘平的数据。
2.4、使用Where比较大小,sql语句为:
select a.姓名,a.奖金,b.等级 from [奖金$a1:b11] a,[奖金等级$] b where a.奖金 >=b.最小值 and a.奖金<=b.最大值
此方法原理和betweent...and一样,当奖金超过最大值700时,数据将有遗漏(刘平)。
当奖金的最大值为700的时候,以上四种方法都得出同样的结果。
当奖金最大值超过700的时候,3、4两个方法将遗漏奖金大于700的数据。
因此,可在设计奖金等级表的时候,可以将最大值700改为一个比较大的数值,使奖金再高也不会超过,则四种方位皆可。
如更改奖金等级表的最大值700为70000,这么大的一个范围,则四种方法都适用。
⑷ 如何使用SQL数据库表中字段的值作为switch的参数
switch是access数据库中的函数,在sql中一般用case……when表示。
如数据如下,其中性别为1代表男,性别为2代表女,现在要求显示男女,不显示1,2:
姓名 性别
张三 1
李四 2
王五 1
赵六 2
执行语句:
select姓名,casewhen性别=1then'男'when性别=2then'女'endas性别from表名;
显示结果为:
姓名 性别
张三 男
李四 女
王五 男
赵六 女
⑸ sql server里的switch (fromTime.DayOfWeek)case DayOfWeek.Monday:
declare @t datetime
declare @i int
set @t=getdate()
if DATEPART ( dw , @t ) =1
set @i=7 --星期日
else if DATEPART ( dw , @t ) =2
set @i=1
else if DATEPART ( dw , @t ) =3
set @i=2
else if DATEPART ( dw , @t ) =4
set @i=3
else if DATEPART ( dw , @t ) =5
set @i=4
else if DATEPART ( dw , @t ) =6
set @i=5
else
set @i=6
print @i
⑹ PLSQL中,select case..when.. then..什么意思怎么用
case when ... then .. when .. then ... end
这种表达式,是sql的不同条件分支结果。
举例如下,
1、创建数据表,create table test_student(stu_id number, class_id number);
⑺ sql server 中如何使用类似switch..case的分支操作
限定为某个数值? 不是很理解啥意思呵呵。
有很多方法能确定查询条件,或者输出类别。
什么都不写,但是有默认值的 default
= 号 也能确定某个特定值。。。
isnull(字段,'输出') as 名 也能保证字段为DBNULL时输出设定的值。
还有很多函数能实现输出的变化,Convert()[case()]。
分支语句也能哦,SQL你面的switch(貌似SQL查询与距离不能写if..else)
case 字段 when 字段值 then '输出'...else '最后输出' end
多用在存储过程。比如:有个字段status状态 0,1 你可以用分支语句来设定输出内容 0就输出 关闭 1就输出打开 嘿嘿!
is 关键字 在查询的时候也能指定 某些类别 如 is not null 等。
还有你是不是想问 SQL字段和.NET里面的变量映射表啊?MSDN里有哇~
如 short(sql) >> Int16(c#)
⑻ Sql Server 可以支持在sql中写if或switch吗
Sql Server 可以支持在sql中写if或switch吗
isnull(字段,'输出') as 名 也能保证字段为DBNULL时输出设定的值。
还有很多函数能实现输出的变化,Convert()[case()]。
分支语句也能哦,SQL你面的switch(貌似SQL查询与距离不能写if..else)
case 字段 when 字段值 then '输出'...else '最后输出' end
⑼ Access 数据库的 SQL语法 里的 Switch() 怎么用
update 表 set 年龄=
case 名字='小红' then 3
case 名字='小蓝' then 5
else 年龄
end