3

ここで求めていることは可能だと思いますが、まだ方法が見つかりません:

SQL SELECT-FROM-WHEREクエリの結果の一部のセルが空白であり、DbVisualizer で(null)内部に書き込まれます。代わりに空白のセルを表示したいと思います。
私はすでにCASE-WHENNVL演算子を試しましたが、空白に置き換えることはできません。 or''を使用せざるを得ません。 ' ''message'

後で Excel でこれらのスペースまたはメッセージを削除できることはわかっていますが、この回避策の代わりに、DbVisualizer で直接削除する方法があるかどうかを知りたいです。


編集:私のリクエストは次のようになります:

SELECT *things*,
  CASE WHEN
     (SELECT COUNT(*) FROM table d2 WHERE *join-condition* AND *other condition*) = 1
  THEN
     (*sub-select query*)
  ELSE
     ''
  END
  AS NAME,
  *other things*
  FROM table d1
  WHERE *something*

どうもありがとう !

4

3 に答える 3

4

以下のように、標準SQL 関数のcoalesce()を試しましたか?

SELECT COALESCE(columnName, '') AS ColumnName FROM tableName;

構文:

COALESCE 構文

COALESCE (expr1, expr2)

次と同等です。

CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END

同様に、

COALESCE (expr1, expr2, ..., exprn), for n>=3

次と同等です。

CASE WHEN expr1 IS NOT NULL THEN expr1 
   ELSE COALESCE (expr2, ..., exprn) END

上記の例は、データベース SQL 言語リファレンスからのものです。

于 2015-07-14T10:28:24.383 に答える
1

標準 SQL は、@Shishir が提案するように COALESCE(expr1, expr2, ...)を提供します。

COALESCE()可変量の引数を取り、最初の式を返しますNOT NULL

MySQL はIFNULL(expr1,expr2)も提供しますexpr2expr1 IS NULL

SELECT
    COALESCE(field1, ''),
    COALESCE(field1, field2, field3)
    IFNULL(field1, ''),
    IFNULL(field1, field2)
FROM table
于 2015-07-14T10:37:56.623 に答える