31

こんにちは、2 つのフィールドのうち 1 つが空かどうかに応じて 1 つの値を選択するクエリがあります。

field1 and field2

それらを次のように選択したいcomplete_field

IF field1 is empty, then complete_field is field2
ELSE complete_field is field1

php では、次のようになります。

$complete_field = $field1 == '' ? $field2 : $field1;

PostgreSQLでこれを行うにはどうすればよいですか?

私は試した:

SELECT
(IF field1 = '' THEN field2 ELSE field1) AS complete_field
FROM
table

しかし、うまくいきません。

私を助けてください:)ありがとう

4

3 に答える 3

51

使用CASE WHEN .. THEN .. ELSE .. END、例:

SELECT 
(CASE WHEN (field1 IS NULL OR field1 = '') THEN field2 ELSE field1 END)
FROM table;

公式ドキュメントで確認してください。

于 2012-12-05T12:41:06.857 に答える
40

で試しCOALESCEてくださいNULLIF

SELECT COALESCE(NULLIF(field1, ''), field2) AS the_field FROM my_table;
于 2012-12-06T20:13:20.263 に答える
8

ANSI SQL 関数 Coalesce() が必要です。

 select Coalesce(field1,field2)
 from   table;
于 2012-12-05T12:44:17.343 に答える