昨天在试图取某个字段时,发现在现有数据的情况下,没有该字段的值,而程序又要求必须选出一个数来,也就是说,该sql文在任何情况下都必须选出一条数据来。想了一会,得到如下一条语句,自己觉得比较有用,拿来大家讨论讨论。
SELECT NVL(A.USERRATE, 1) AS USERRATE
FROM
(
SELECT USERRATE , 1 AS TTT
FROM ORD_MONTH
WHERE ADDRESSCODE = @#L@#
AND LASTID = @#C13006@#
) A
,(SELECT 1 AS TTT FROM DUAL) B
WHERE 1 = 1
AND B.TTT = A.TTT(+)
B表始终有一条数据,通过外连结就会在任何情况下都选出一条数据来。