• ベストアンサー

関数を作成したい

PgSQLで関数を作成したいのですが、記述方法がわかりません。 結果がbool trueならint 1 結果がbool falseならint 0 を返すようなものを作りたいのですが、どのように記述すれば良いのでしょうか。 CREATE FUNCTION BOOL2INT(boolean) RETURNS integer このあとの記述が複雑でわかりません

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

実質、丸投げじゃないですか! >このあとの記述が複雑でわかりません この程度の関数で複雑というなら、自分で関数を作るのは無理なのでは? と言いつつ、関数の作成例を、以下に示します。 もっと簡略化もできるのですが、逆に分かりにくくなるので、あえてこれ以上、簡略化しません。 1.定義 create or replace function bool2int (pBool bool) returns int as $$ declare vInt int; begin if pBool=true then vInt:=1; elseif pBool=false then vInt:=0; else vInt:=null; end if; return vInt; end; $$ language 'plpgsql' ; 2.実行 select bool2int(true),bool2int(false),bool2int(null);

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Boolean型変数の値を反転する方法

    ご存知の方教えて頂けますか? Boolean型変数の値が True なら False,False なら True に変換したいのですが、現在次のようにcodeを書き、希望した値になります。 Dim bool As Boolean 中略 bool = bool - True このcodeは正しいのでしょうか? 他に ”正しい方法”があるのでしょうか? スミマセン!よろしくお願いします。

  • エクセルVBA IDの有無をユーザー定義関数で知る方法

    Sheet1上のA1セルにIDプロパティでのIDを設定した場合、これをワークシート関数で取得する方法が見つけられなかったのでユーザー定義関数を以下の通り作成しました。 Function IDCheck(CksCell As Range) As Boolean Application.Volatile (True) IDCheck = Sheets("Sheet1").Range(CksCell.Address).ID <> "" End Function これで、Sheet1上で=IDCheck(A1) というように記述すれば、IDが設定してあればTRUE、そうでなければFALSEを返すのでわかります。 ところが、このままでは自動計算のつもりでApplication.Volatile (True)を記述しているにもかかわらず、IDを削除してもワークシート上の表示はTRUEのままです。 どうしたらよいのでしょうか? もし、ワークシート関数で取得する方法があれば、そちらの方がベターです。

  • 条件付き書式設定でユーザー定義関数

    ユーザー定義関数を以下のように作成しました。 Function AAA(i As Integer) As Boolean If i = 1 Then AAA = True Else AAA = False End If End Function このユーザー定義関数を条件付き書式で使用するときに期待した動作になりません。 条件付き書式のルールに 【1】 =AAA(1) とするとTRUEになりましたが、 【2】 =AAA(ROW(B1)) と入力するとTrueと判定されませんでした。(ここでTrueと判定させたかった) なお【3】 =ISERROR(AAA(ROW(B1))) と入力するとTrueと判定されました。 (補足) 【2】はB1セルの行番号(=1)をAAA関数で判定させてます。 実際は、列番号も引数に加えて、表全体に条件付き書式を設定しようとしてます。 ちなみにセルに直接上記数式を入力した場合 【1】→True 【2】→True 【3】→False となります。 【2】のエラーの原因は何でしょうか? 【2】でTrueと判定させる方法はありますか? 以上、よろしくお願いします。 ※エクセル2010

  • 数値チェックの関数に関しまして

    VB2008で現在プログラムを作成中なんですが 数値をチェックする場合、通常は Dim I01 As Integer = 13 isNumeric(I01) などでチェックしてTrueが返ってくるんですが 小数点を使った数値、仮に「1.25」などはFalse また「-10」などもFalseが返ってくるような関数は、無いでしょうか? 「1531」のような小数点も使わない数値のみ「True」が返ってくる 関数。 ご教授よろしくお願いいたします。

  • is_callable()の第二引数の使い方

    いつもお世話になっています。 PHPの勉強を始めた初心者です。 is_callable()の第二引数の使い方がよく分りません。 true に設定すると、$name が文字列型である場合には、常に bool(true)を返します。 どういう時に、役に立つのでしょうか? お教えいただければ幸いです。 <?php // http://php.net/manual/ja/function.is-callable.php: /* bool is_callable ( callback $name [, bool $syntax_only = false [, string &$callable_name ]] ) syntax_only TRUE の場合、この関数は単に name が関数またはメソッドであるかどうかだけを調べます。 文字列以外の型の変数や不正な形式の配列は、引数として受け付けられません。 */ class someClass { function someMethod() { print "hello from someMethod\n"; } } $varInt = 1; $varString = "string"; $varObject = new someClass(); $varMethod = array($varObject, 'someMethod'); var_dump(is_callable($varInt, true)); // bool(false) var_dump(is_callable($varInt, false)); // bool(false) var_dump(is_callable($varString, true)); // bool(true) var_dump(is_callable($varString, false)); // bool(false) var_dump(is_callable($varMethod, true)); // bool(true) var_dump(is_callable($varMethod, false)); // bool(true) $varObject->someMethod(); [study_php@localhost ch05]$ php is_callable_Test.php bool(false) bool(false) bool(true) bool(false) bool(true) bool(true) hello from someMethod [study_php@localhost ch05]$

    • 締切済み
    • PHP
  • 関数型インターフェースの配列の作り方

    関数型インターフェースを勉強し始めた者です。 関数型インターフェースの配列はどのように作ればよいのでしょうか? 関数配列のようなものを作ろうとして以下のプログラムを作りました。 環境:Windows 7 64bit IDE:Eclipse 4.5.2 JDK:1.8 package interfaceSample; import java.util.function.Function; public class FuncSample3 { public static void main(String[] args) { //@SuppressWarnings("unchecked") Function<Integer, Integer>[] funcList = new Function[3]; funcList[0] = FuncSample3::mul; funcList[1] = FuncSample3::add; funcList[2] = FuncSample3::sub; for (Function<Integer, Integer> function : funcList) { funcApply(function, 10); } } public static int mul(int x) { return x * 2; } public static int add(int x) { return x + 2; } public static int sub(int x) { return x - 2; } public static void funcApply(Function<Integer, Integer> func, int t) { System.out.println("この関数の値は"+func.apply(t)); } } このプログラムを打ち込んだところ、期待通りの出力をしてくれたのですが、以下の警告が出てきました。 型の安全性: 型 Function[] の式は、未検査の型変換を使用して Function<Integer,Integer>[] に準拠するようにする必要があります このメッセージでググって見たのですが、インターフェースについてこのメッセージが出たケースに当たりませんでした。 @SuppressWarnings("unchecked")を付ければ警告は消えるのですが、あんまり気分が良くないです。 よろしくお願いいたします。 ※OKWAVEより補足:「Webシステム開発」についての質問です。

    • ベストアンサー
    • Java
  • VBのReturnの使い方

    Excel2007のVBで以下のfunctionを定義すると、Returnのところでコンパイルエラーになります。 -------------------------------------- Public Function IsTen(lNumber As Integer) As Boolean If lNumber = 10 Then Return True Else Return False End If End Function -------------------------------------- ググってみるとReturn True とか Return False とかができるように思えるのですが、何が不味いのでしょうか? VBの知識はあまりなく、低レベルな質問かもしれませんが、よろしくお願いします。

  • ACCESS Viewでユーザー定義関数を使いたい

    ACCESS2000+MSDEで開発をしていますが、Viewの中でユーザ定義関数を使用したいのですが、できません。 1> create function dbo.count1(@linkNo int) 2> returns int 3> as 4> 5> begin 6> declare @cnt int 7> 8> select @cnt = count(*) from dbo.TBL_OA where [link] = @linkNO 9> 10> return @cnt 11> end 12> go 1> select dbo.count1(100) 2> go ----------- 1 (1 件処理されました) ここまでは上手く行くのですが、 ACCESS側でViewの列へ count1(100)と記述すると 「ADOエラー:'count1'は関数名として認識されません。」 とエラーになってしまいます。 方法は問いませんが、Viewの中でユーザー定義関数が使用できる方法、ご存知の方いらっしゃいましたら、よろしくお願いします。

  • onClickで関数呼出し後に、結果に応じてsubmitを実行する方法

    JavaScriptで、 function func() {  if (a==0) {   alert("処理しない");   return false;  }  return true; } と、a=0ならfalseを返し、それ以外ならtrueを返す関数を定義しています。 そして、FORMタグで <FORM NAME="FormName" ACTION="next.html"> <INPUT TYPE="button" VALUE="next" NAME="button1" onClick="return func();submit();"> </FORM> と記述しています。 要は、ボタンを押下した際にfunc関数がtrueを返せば、next.htmlに 遷移させたいのですが、上記記述では、遷移しません・・・ onClick部分にonClick="return func(),submit();"と記述した場合、 func関数の実行結果がtrueでもfalseでも遷移してしまいます。 そこで、なんとなくonClick="return func()&&submit();"と記述してみたところ、 func関数がtrueの時のみうまく遷移するようになりました。 これは偶然そう動作しているのでしょうか、それとも上記は正しい記述方法なのでしょうか? 正しい記述方法ならいいのですが、上記以外に正式な記述方法があれば 教えていただけないでしょうか? ※TYPE="submit"にすればいいとは思うのですが、buttonで実現したいと 考えております。

  • BOOLに変わるもの

    コンパイラーによってBOOLは古い?とエラーになります。TRUEかFALSEの1ビットしかいらないのに、INTやCHARを使うのでしょうか?BOOLに変わる新しい?宣言ってあるのでしょうか?

XK100 カラープリントが出来ない
このQ&Aのポイント
  • XK100のカラープリントができない問題について
  • 2日前に購入したXK100のセットアップ時に自動プリントヘッド位置調整に失敗し、手動調整でもカラー部分が印刷されない
  • 添付写真を確認すると、カラー部分のみプリントされていない
回答を見る