'Price
Category'
=
CASE
WHEN
price
IS
NULL
THEN
'Not
yet
priced'
WHEN
price
<
10
THEN
'Very
Reasonable
Title'
WHEN
price
>=
10
and
price
<
20
THEN
'Coffee
Table
Title'
ELSE
'Expensive
book!'
END
先说下,case要和end一块用。
从上面可以看出,case里用的是when
then
形式,从整个case
如果是把when
看成if
,就好理解多了,if语句就像是筛子里的石子,而case
end就是筛子,只会允许一个符合它网眼大小的石头出去,并且会将这个石子打包成一个可用的表达式。
不知道你具体什么数据库,,给出sqlserver,你上面写的就对了,给你写出详细的测试记录吧
CREATE TABLE test(a INT,b VARCHAR(10))
INSERT INTO dbo.test
( a, b )
SELECT 1,'a'
UNION ALL
SELECT 2,'b'
UNION ALL
SELECT null,'c'---这里加了一条数据,便于你看出结果
SELECT a,b,c=(CASE WHEN ISNULL(a,'')='' THEN null ELSE b END)--注个人喜欢用isnull()函数
FROM test结果:
1
a
a
2
b
b
NULL
c
null
Access中改为:
Dim
strSQL
As
String
strSQL
="Select
iif(content
LIKE
'*-RA*'
,
'小雨'
,iif(content
LIKE
'*RA*',
'大雨'
,'其他'))
AS
天气
FROM
Sheet1"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)