查询具有条件的SELECT计算列

时间:2017-10-31 17:57:59

标签: sql select firebird

我需要在SELECT QUERY中创建一个有条件的列。像这样:

SELECT NAME, ADDRESS, IF TABLE.COD=101 THEN return TABLE.VALUE AS TABLE  
FROM CRM

因此SELECT中的第三个参数是带有条件的计算列。

我相信这很简单,但我没有成功解决这个问题。

2 个答案:

答案 0 :(得分:1)

由于您没有提供任何数据和预期输出,因此很难弄清楚您究竟想要什么。你还可以尝试下面的一个。

SELECT NAME, ADDRESS, (Case WHEN TABLE.COD=101 THEN TABLE.VALUE END) AS TABLE  
FROM CRM

答案 1 :(得分:0)

另一种选择是使用<section class="section-creations" id='creations'> <div class="row"> <h2>My creations</h2> <br> <div class="showcase"> <img src="https://dummyimage.com/300x200/000/fff" alt="Talking with sgt.Dornan"> <p>"Talking with sgt.Dornan" is a reincarnation of a legendary dialogue from a not less legendary game - Fallout 2. This piece is absolutely gold and will put a smile on everyones face. But now you can rewind that experience in your browser! Done in pure HTML, CSS and JS.</p> <div class="clear"></div> </div> <div class="showcase"> <img id='bio' src="https://dummyimage.com/300x200/000/fff" alt="Bioshock pipe game"> <p id='bio_p'>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ut illum laboriosam voluptatem ullam id. Rerum ratione repellendus minus, doloribus earum quos, tempore explicabo perspiciatis, optio accusamus, voluptate illum aut quia.</p> <div class="clear"></div> </div> </div> </section>函数。

https://firebirdsql.org/refdocs/langrefupd20-iif.html

坦率地说,IIF只是按名称运作,本质上它是一个简写,一个宏替换扩展到IIF语句。

这种亲密的关系可能就是你在撰写陈述时误以为CASEIF的原因。

CASE

现在,你的陈述似乎并不真实。您引用 SELECT NAME, ADDRESS, IIF(TABLE.COD=101, TABLE.VALUE, NULL) as TABLE FROM CRM TABLE.COD - 这些显然是某些第二个表中的某些字段,但您忘记将其包含在TABLE.VALUE条款中!

因此我觉得你真正需要的不是某些条件/计算,而是一个普通的FROM
https://en.wikipedia.org/wiki/Join_(SQL)

OUTER JOIN