【发布时间】:2010-11-04 07:49:12
【问题描述】:
我有一个这样的数据库表:-
表1
Column1 : Varchar(50)
Column2 : Varchar(50)
Column3 : Boolean
Column4 : Varchar(50)
Column5 : Varchar(50)
我想在运行 SQL 语句时创建一个虚拟列 - 或向表中添加一个新列 - 以便该列将包含一个字符串,指示行项的状态取决于多个这些列。我的意思是这些列是否有 Null 值。
一种合乎逻辑的表示方式:-
选择开关 DummyColumn
"status1" Case column1 IS NOT NULL
"status2" Case column2 IS NOT NULL
"status3" Case column3 IS NOT NULL
"status4" Case column1 IS NOT NULL AND column2 IS NOT NULL
"status5" Case column2 IS NOT NULL AND column3 IS NULL
"status6" Case column2 IS NOT NULL OR column3 IS NOT NULL
来自表 1;
在业务逻辑中,我可以说我想显示一个字符串,指示数据库中项目的状态,这取决于许多其他可能是布尔或字符串的状态列,并且此状态可以根据存储的值具有许多值在这些表格列中。
我的数据库引擎是 Sybase。
我如何构建我的 SQL 查询来做到这一点?这件事叫什么?我怎样才能找到或搜索那个?我不知道我会在什么主题中找到这个?我搜索合并、连接、替换、NVL 和联合,但我没有找到我想要的..
在此先感谢,我希望我能很好地表达我的问题,并且它是重复的,我希望尽快找到一个好的答案..
【问题讨论】:
-
@user493325,你知道Status6永远不会被返回,因为它会被Status1或Status2覆盖,即使Status4和Status5不适用?
标签: sql database null sybase switch-statement