PostgreSQL:複数の日付パラメーターを持つ関数

fLen

以下のように、複数のパラメーターを持つ関数を作成しようとしています。

CREATE OR REPLACE FUNCTION select_name_and_date (
    IN f_name character,
    IN m_name character,
    IN l_name character,
    IN start_date  date,
    IN end_date  date )  
RETURNS TABLE (
start_date  date ,first_name character, middle_name character,last_name character ) AS $BODY$
BEGIN RETURN QUERY
select a.start_date, a.first_name, a.middle_name, a.last_name
FROM table1 a
where code in ('NEW', 'OLD')
and ( (a.first_name like '%' || f_name || '%' and a.middle_name like '%' || m_name || '%' and a.last_name like '%' || l_name || '%')) 
or ((a.date_applied) between start_date  and end_date  );
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;

日付で実行しようとすると、正しい結果が表示されます。

select * from select_name_and_date ('Firstname','','','2016-06-27','2016-06-28');

日付の値を削除しようとすると、次のように表示されます。エラー:日付型の入力構文が無効です: ""

select * from select_name_and_date ('Firstname','','','','');

日付のNULL値に置き換えようとすると、次のように表示されます。0行が取得されました。(あるべきとき)

select * from select_name_and_date ('Firstname','','',NULL,NULL);

各パラメータに依存しないパラメータが欲しいのですが。

ムレイニク

betweenオペレータは処理しないnullのを。それらを許可したい場合は、明示的に扱う必要があります。たとえば、適用さa.date_appliedれる条件の一部を次のように書き直すことができます。

((a.date_applied BETWEEN start_date AND end_date) OR
 (start_date IS NULL AND a.date_applied < end_date) OR
 (end_date IS NULL AND a.date_applied >= end_date) OR
 (start_date IS NULL AND end_date IS NULL))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

動的な日付パラメータを持つSQL関数

分類Dev

複数のパラメータを持つ React 関数

分類Dev

複数のパラメーターを持つHaskellフィルター関数

分類Dev

複数のパラメータ ブラケットを持つ Python 関数

分類Dev

`map`で複数のパラメータを持つ関数を使用する

分類Dev

Haskell:複数のパラメーターを持つSortBy(生年月日)

分類Dev

複数のパラメータリストを持つ無名関数

分類Dev

データフレームで実行する日付パラメーターを持つ関数

分類Dev

argparse:複数のパラメーターを持つオプションのコンバーター関数?

分類Dev

複数のパラメーターを持つMapStruct QualifiedByName

分類Dev

複数のパラメーターを持つJPA Criteria API

分類Dev

複数のパラメーターを持つAngularJS $ broadcast

分類Dev

複数のパラメーターを持つAngularJS $ broadcast

分類Dev

複数のパラメーターを持つLaraverFindOrNew

分類Dev

複数のパラメーターを持つcreateQueryBuilderとsetParameter?

分類Dev

複数のパラメーターを持つuseApiフック

分類Dev

複数の値を持つパラメーターPython

分類Dev

複数のパラメーターを持つParameterizedThreadStart

分類Dev

複数のパラメーターを持つpool.apply_async

分類Dev

複数のパラメーターを持つHttpRequestが迅速

分類Dev

Clojure:複数のパラメーターを持つ関数でフィルターを使用する

分類Dev

関数の結果として複数のタイプを持つScalaタイプパラメーター

分類Dev

javascriptの動的パラメーターを持つ関数

分類Dev

関数C ++へのパラメーターとして変数パラメーターを持つ関数

分類Dev

複数のパラメーターを持つAndroidの複数形

分類Dev

Keras:複数のパラメーターを持つラムダレイヤー関数

分類Dev

日付パラメータを持つPL / SQL関数が誤った出力を返す

分類Dev

複数のパラメータを持つ文字列の分割

分類Dev

複数のパラメーターまたはキーワードを持つJavaScriptFilter()関数

Related 関連記事

  1. 1

    動的な日付パラメータを持つSQL関数

  2. 2

    複数のパラメータを持つ React 関数

  3. 3

    複数のパラメーターを持つHaskellフィルター関数

  4. 4

    複数のパラメータ ブラケットを持つ Python 関数

  5. 5

    `map`で複数のパラメータを持つ関数を使用する

  6. 6

    Haskell:複数のパラメーターを持つSortBy(生年月日)

  7. 7

    複数のパラメータリストを持つ無名関数

  8. 8

    データフレームで実行する日付パラメーターを持つ関数

  9. 9

    argparse:複数のパラメーターを持つオプションのコンバーター関数?

  10. 10

    複数のパラメーターを持つMapStruct QualifiedByName

  11. 11

    複数のパラメーターを持つJPA Criteria API

  12. 12

    複数のパラメーターを持つAngularJS $ broadcast

  13. 13

    複数のパラメーターを持つAngularJS $ broadcast

  14. 14

    複数のパラメーターを持つLaraverFindOrNew

  15. 15

    複数のパラメーターを持つcreateQueryBuilderとsetParameter?

  16. 16

    複数のパラメーターを持つuseApiフック

  17. 17

    複数の値を持つパラメーターPython

  18. 18

    複数のパラメーターを持つParameterizedThreadStart

  19. 19

    複数のパラメーターを持つpool.apply_async

  20. 20

    複数のパラメーターを持つHttpRequestが迅速

  21. 21

    Clojure:複数のパラメーターを持つ関数でフィルターを使用する

  22. 22

    関数の結果として複数のタイプを持つScalaタイプパラメーター

  23. 23

    javascriptの動的パラメーターを持つ関数

  24. 24

    関数C ++へのパラメーターとして変数パラメーターを持つ関数

  25. 25

    複数のパラメーターを持つAndroidの複数形

  26. 26

    Keras:複数のパラメーターを持つラムダレイヤー関数

  27. 27

    日付パラメータを持つPL / SQL関数が誤った出力を返す

  28. 28

    複数のパラメータを持つ文字列の分割

  29. 29

    複数のパラメーターまたはキーワードを持つJavaScriptFilter()関数

ホットタグ

アーカイブ