sql server if 语句问题

kukumaiwu 2010-02-09 03:20:53
现在有个需求
创建名为a的视图
a中的某项x的值由下面的条件决定
b表中的项目y如果有值则a中的x取b中的y
即if b.y !='' begin a.x=b.y end
如果b表中项目y为空且c表中的项目z有值则a的x取c的z
即if b.y='' and c.z!='' begin a.x=c.z end
大概思路是这样
自己在sql2000下写了老提示不对
请大家帮忙
或者说这个需求用case when怎么做好?
谢谢

...全文
217 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
unique_118 2012-07-18
  • 打赏
  • 举报
回复
IF Col_Length('VsBASet','VsBsIsShowCH0AJ1') Is Null
Alter Table VsBASet
Add VsBsIsShowCH0AJ1 Int
这句话是什么意思呢哪位高手能帮忙解析下 ,比如if后面的Col_Length是什么意思,()里面又是什么意思
注:VsBASet是表名,CH0AJ1字段名
kukumaiwu 2010-02-09
  • 打赏
  • 举报
回复
多谢楼上!
OK了
谢谢!
百年树人 2010-02-09
  • 打赏
  • 举报
回复
不好意思,楼了一个then
CREATE VIEW XXX
AS
SELECT
a.x=case when b.y!='' then b.y else (case when c.z!='' then c.z end) end,
其他字段
FROM xxxx
WHERE 条件
kukumaiwu 2010-02-09
  • 打赏
  • 举报
回复
按照7楼的改了之后提示ELSE附近语法错误...
百年树人 2010-02-09
  • 打赏
  • 举报
回复
CREATE VIEW XXX
AS
SELECT
a.x=case when b.y!='' else (case when c.z!='' then c.z end) end,
其他字段
FROM xxxx
WHERE 条件
kukumaiwu 2010-02-09
  • 打赏
  • 举报
回复
我没说明白,
这个是要创建VIEW
所以肯定是
CREATE VIEW XXX
AS
SELECT
CASE WHEN b.y !='' b.y AS a.x,
...
FROM xxxx
WHERE
...
这样的一个样子吧
如果和上面各位那样写单独执行没有问题
就是写在创建VIEW的时候不知道怎么弄
继续求教
chuifengde 2010-02-09
  • 打赏
  • 举报
回复
a.x=CASE WHEN isnull(b.y,'')<>'' THEN b.y ELSE CASE WHEN ISNULL(c.z,'')<>'' THEN c.z ELSE a.x END END 
rucypli 2010-02-09
  • 打赏
  • 举报
回复
select case when a='' then ... else ... end
from tb
fwacky 2010-02-09
  • 打赏
  • 举报
回复
case when then end
叶子 2010-02-09
  • 打赏
  • 举报
回复
用case when 比较方便
百年树人 2010-02-09
  • 打赏
  • 举报
回复
a.x=case when b.y!='' else (case when  c.z!='' then c.z  end) end

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧