2011-01-27 38 views
0

我有一个选择查询,其中有一个其中条件单选择查询来处理两个条件

select column1,column2 from table1 where isnull(i.picturecolumn) != 1; 

picturecolumn是以字节为单位的数据类型。

我需要使用超链接列,如果超链接列为空,则查找图片列。

select column1,column2 from table1 where isnull(i.hyperlinkcolumn) != 1; 

即:

if (hyperlink==null) 
{ 
    select column1,column2 from table1 where isnull(i.picturecolumn) != 1; 
} 
else 
{ 
select column1,column2 from table1 where isnull(i.hyperlinkcolumn) != 1; 
} 

我有一个选择查询的代码,我需要另一个选择查询处理这种替换,有什么想法?

回答

3
select column1,column2 
    from table1 
    where isnull(coalesce(i.hyperlinkcolumn, i.picturecolumn)) != 1; 
+0

“IS NOT NULL” - COALESCE不会返回1.不需要使用ISNULL,如果没有列返回非NULL值,COALESCE将返回NULL。 – 2011-01-27 19:55:12

+0

@OMG小马:我想我在输入你的评论的同时输入了我的更正。 – 2011-01-27 19:55:58

1

我不知道,但我认为这是你在找什么: SELECT COL1,COL2 FROM表1 WHERE picturecolumn IS NOT NULL或hyperlinkcolumn IS NOT NULL;

基本上,返回任何其中任何一列不为空的结果。