Каков синтаксис для возврата определенной пользователем строки в левом внешнем соединении? - PullRequest
1 голос
/ 25 февраля 2011

Я попал в ментальную слепую зону: - Несмотря на RTFM и другие материалы, я не вижу этого.

Если у меня LEFT OUTER JOIN, какой синтаксис используется для возврата столбца для правой таблицы, если она существует, или определяемой пользователем строки, если она не существует?

user defined string = "My string"

Table 1
id | text
-----------
1  | bloop
2  | grrrr

Table 2
id | flange
-----------
2  | whiz

Desired result
id | text  | flange
-------------------
1  | bloop | My string
2  | grrrr | whiz

Ответы [ 3 ]

2 голосов
/ 25 февраля 2011

Функция COALESCE в Firebird 1.5 и выше может преобразовывать NULL в большинство чего-либо еще. Это позволяет вам выполнять преобразование «на лету» и использовать результат для дальнейшей обработки, без необходимости использовать «if (MyExpression is null) then» или подобные конструкции.

см. Преобразование в и из NULL

, например

SELECT id,text,COALESCE(flange,'MY string') as flange from ...
1 голос
/ 25 февраля 2011
SELECT Table1.id,
       COALESCE(Table2.flange, 'UserDefinedString') as flange
FROM 
     Table1

LEFT JOIN Table2
ON Table1.id = Table2.id
1 голос
/ 25 февраля 2011
SELECT Table1.id,
       ISNULL(Table2.flange, 'UserDefinedString') as flange
FROM 
     Table1

LEFT JOIN Table2
ON Table1.id = Table2.id
...