当前位置:首页 » 编程语言 » sqlwhere语句case
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlwhere语句case

发布时间: 2022-07-09 17:22:10

sql语句case的用法

select case when stcd='stcd' and tm between 'd1' and convert(varchar(100),year(dateadd(day,1,'d1')))
+'-'+convert(varchar(100),month(dateadd(day,1,'d1')))
+'-'+convert(varchar(100),day(dateadd(day,1,'d1')))
+' 8:00:00' then sum(drp) when stcd='stcd' and tm between convert(varchar(100),year(dateadd(day,-1,'d1')))
+'-'+convert(varchar(100),month(dateadd(day,-1,'d1')))
+'-'+convert(varchar(100),day(dateadd(day,-1,'d1')))
+' 9:00:00' and 'd1' then sum(drp) end drpsum from st_pptn_r你把'stcd'和'd1'换成具体值,试试看。

❷ SQL判断语句case的用法,很难,新手勿乱发言

不明白姓名你要怎么算法,写个简单的

select 年级,count(语文) as 语文,count(数学) as 数学,count(英语) as 英语
from cj
where (case when @param='' then 1 else charindex(姓名,@param) end)>0
group by 年级

❸ sql where case when then请在这里概述您的问题

case
when最后要输出一个值,多用于select列表中,如果用在where中,就要看你能否正确输出值了
很明显你的语句
(case
when
end)=最后没有响应的值出现,就不对了呗

❹ SQL 中 where 条件中 in 后面 加 CASE WHEN 语句 报错

case语句只能代表一个值,如果你的select brno from poozfmessagebrno where upbrno = '56601'语句中返回多个值的话就会报错喽

❺ sql server2008中where后面跟 case 或者 别的判断都行

where 后面加上CASE是可以的,但要注意括号,表示是一个订算结果。
示例如下:
CREATE TABLE #temp
(
id INT IDENTITY(1, 1) ,
name VARCHAR(20) ,
startYear INT ,
startMonth INT
)

INSERT INTO #temp
SELECT 'z' ,
'2010' ,
'12'
UNION ALL
SELECT 'e' ,
'2011' ,
'11'
UNION ALL
SELECT 'a' ,
'2011' ,
'2'
UNION ALL
SELECT 'b' ,
'2011' ,
'5'
UNION ALL
SELECT 'c' ,
'2011' ,
'10'
UNION ALL
SELECT 'd' ,
'2011' ,
'7'

--查询早于等于指定日期的数据
DECLARE @condition VARCHAR(6)
SET @condition = '201110'

SELECT *
FROM #temp A
WHERE ( CASE WHEN LEN(A.startMonth) = 1
AND A.startMonth != 0
THEN CAST(( CAST(startYear AS VARCHAR(4)) + '0'
+ CAST(A.startMonth AS VARCHAR(1)) ) AS DATE)
WHEN LEN(A.startMonth) = 2
THEN CAST(CAST(startYear AS VARCHAR(4))
+ CAST(A.startMonth AS VARCHAR(2)) AS DATE)
END ) <= CAST(@condition AS DATE)

DROP TABLE #temp

❻ sqlserver的sql语句里能在where条件里用case when吗,如果可以,请给个简单的例子。

1>
2> SELECT * FROM t_test_sub;
3> GO
id main_id value
----------- ----------- ----------
2 12 TWOTWO
11 21 AAAA
12 22 BBBB
13 NULL CCCC
14 NULL DDDD
15 NULL EEEE
(6 行受影响)

1> UPDATE t_test_sub set value = 'test' WHERE case when id>10 then 1 else 0 end
= 1
2> go
(5 行受影响)

1> SELECT * FROM t_test_sub;
2> go
id main_id value
----------- ----------- ----------
2 12 TWOTWO
11 21 test
12 22 test
13 NULL test
14 NULL test
15 NULL test
(6 行受影响)
1>

❼ Sql文的where中使用case when

这样就可以了
select B.bCol_1,B.bCol_2,C.cCol_1
from TBL_B B left join TBL_C C
on B.bCol_Key = C.cCol_Key
where (B.bCol_Time < 'xxxx' and B.bCol_Flag<>0) or ( C.cCol_Time < 'xxxx' and B.bCol_Flag=0)

❽ SQL语句用法: select case语句块后面能否加where 条件

when。。。。。。。。。then。。。。。。。
when就相当于where
create
table
table_3(a
varchar
,b
varchar)
insert
into
table_3
values('1','2')
insert
into
table_3
values('1','3')
insert
into
table_3
values('2','2')
select
*
from
table_3
---when语句中的类型和else必须一致
select
(case
a
when
'1'
then'123'
when
'2'
then
'456'
else
0
end
)
as
aa
,a,b
from
table_3
select
case
when
a=1
then
'中文'
when
a=2
then
'英文'
else
'过问'
end
from
table_3

❾ SQL语句中Case 的用法

Select Case 语句在有多个可能的条件必须被检查时使用。与 If 语句不同,Select Case语句在找到匹配的Case 表达式并执行了Case 表达式和下一个Case 表达式之间的语句后将立即跳出。如果没有匹配的Case 表达式,将执行其它语句。

Case Else 与lse 的意义相同。

Case 语句能接受各种类型的(作为判断条件的)表达式。表达式可以是单一值、由逗号分隔的一组值、能返回值的函数、用"To"关键字指定的值的范围或者使用"Is"关键字对等式或不等式进行测试。您可以连接不同类型的不同表达式,只要将它们用逗号分开即可。