MySQL的专栏中,我有这个基本的SQL语句:与条件值
SELECT p.s1,pr.s1 FROM `prop` p LEFT OUTER JOIN prom pr ON pr.id = p.prom
我的目的是与的pr.s1
值一列,如果它不为空,而在其他情况下p.s1
。这很简单,但我不知道如何正确地做到这一点。
任何想法将非常感激,谢谢。
MySQL的专栏中,我有这个基本的SQL语句:与条件值
SELECT p.s1,pr.s1 FROM `prop` p LEFT OUTER JOIN prom pr ON pr.id = p.prom
我的目的是与的pr.s1
值一列,如果它不为空,而在其他情况下p.s1
。这很简单,但我不知道如何正确地做到这一点。
任何想法将非常感激,谢谢。
您可以使用IFNULL
:
SELECT IFNULL(pr.s1, p.s1) AS s1
FROM `prop` p
LEFT OUTER JOIN prom pr
ON pr.id = p.prom
您可以使用IFNULL
SELECT p.s1, ifnull(pr.s1, p.s1)
FROM `prop` p
LEFT OUTER JOIN prom pr ON pr.id = p.prom
这么快就回答,谢谢! –
您可以使用COALESCE()
:
SELECT p.s1,COALESCE(pr.s1,p.s1)
FROM `prop` p
LEFT OUTER JOIN prom pr
ON pr.id = p.prom
虽然你可能有两个相同的列,所以我想你的意思是:
SELECT COALESCE(pr.s1,p.s1) as s1
FROM ...
如此快速的回答,谢谢! –
为了更加全面,您也可以使用COALESCE
:
SELECT COALESCE(pr.s1, p.s1)
FROM prop p
LEFT OUTER JOIN prom pr
ON pr.id = p.prom
一个好处有关使用COALESCE()
了IFNULL()
是,前者可以采取两个以上的参数。所以,如果,例如,你在一个NULL
值的情况下,有两个备份列,你可以这样做:
SELECT COALESCE(pr.s1, p.s1, p.someOtherCol)
谢谢你的解释! –
这么快就回答,谢谢! –
其简单的变化 –