-1

请找到以下查询并建议我避免大小写并重写以下查询。

select A.ID, CASE B.ID IS NOT NULL THEN B.ABID
             ELSE B.XYID  END AS ABXYID
FROM Table_A A, Table_B B
WHERE A.PK = B.PK

请重新编写上述查询以获得更好的性能。

提前致谢。

4

1 回答 1

1

不完全是您要查找的内容,但COALESCE函数返回其第一个不为空的参数。

如果 B.ID 为 NULL 时 B.ABID 也为 NULL,那么您可以按如下方式重写代码:

select A.ID,
COALESCE(B.ABID, B.XYID) AS ABXYID
FROM
Table_A A,
Table_B B
Where
A.PK=B.PK

哦,你真的应该使用正确的内部连接:

select A.ID,
COALESCE(B.ABID, B.XYID) AS ABXYID
FROM
Table_A A
INNER JOIN Table_B B
ON A.PK=B.PK
于 2012-11-27T15:00:01.410 回答