从任两列中选择在SQL Server 2008R2我有两个表,CONFIG_DATA
和CNA_LIST
:在SELECT
CONFIG_DATA
有两个字段:
ID [varchar(20)] Address [int]
01 141516
02 132132
CNA_LIST
有三个字段:
Address [int] IP1 [varchar(20)] IP2 [varchar(20)]
141516 1.2.3.4 (null)
132132 (null) 2.3.4.5
这些是具有一个或两个IP地址的现场设备,在IP1
或IP2
字段(可以是,或者两者都有)。
我想与IP1
从CNA_LIST
表列出CONFIG_DATA
表,如果它是NULL
,该IP2
。
Address
字段链接两个表。
这将很好地工作:
select a.ID, a.Address, b.IP1
from CONFIG_DATA a, CNA_LIST b where a.Address = b.Address
但如果IP1
是null
我需要IP2
,与此列中列出的"IP"
:
我已经试过IF(b.IP1 <> '')b.IP1 ELSE b.IP2
但语法检查器抱怨。
'CASE WHEN THEN WHEN THEN 。 .. ELSE END AS ' –
RLH
2015-02-10 18:29:25
[踢坏的习惯:使用旧式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick- using-old-style-joins.aspx) - 在ANSI-** 92 ** SQL标准中,旧式*逗号分隔的表*样式列表已替换为* proper * ANSI'JOIN'语法超过20年**),其使用是不鼓励 – 2015-02-10 21:41:45