問題タブ [coalesce]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
8385 参照

sql-server - SQL ビューでの COALESCE の使用

複数のテーブルからビューを作成する必要があります。ビュー内の列の 1 つは、カンマ区切りの値を持つ文字列として、テーブルの 1 つからの多数の行から構成される必要があります。

これは、私がやりたいことの簡単な例です。

Customer と Orders の間には 1 対多の関係があります。したがって、このデータを考えると

ビューを次のようにしたい:

注文があるかどうかに関係なく、全員がテーブルに表示されるようにします。

このビューに変換する必要があるストアド プロシージャがありますが、ビュー内でパラメータを宣言してストアド プロシージャを呼び出すことはできないようです。このクエリをビューに取り込む方法について何か提案はありますか?

0 投票する
5 に答える
3905 参照

clojure - Clojure合体機能

SQLは、coalesce(a, b, c, ...)すべての引数がnullの場合はnullを返すという関数を提供します。それ以外の場合は、最初のnull以外の引数を返します。

Clojureでこのようなものをどのように書きますか?

これは次のように呼び出されます。(coalesce f1 f2 f3 ...)ここで、は必要な場合にのみ評価する必要fiがあるフォームです。がnil以外の場合は、評価しないでください。副作用が発生する可能性があります。f1f2

たぶん、Clojureはすでにそのような関数(またはマクロ)を提供しています。

編集:ここで私が思いついた解決策(StuartHallowayのプログラミングClojure、(and ...)206ページのマクロから変更):

動作しているようです。

修理済み。

0 投票する
6 に答える
10629 参照

sql - 1つの列がNULLの場合、SQLはNULLを返します(COALESCE()の反対)

よろしくお願いします。これは素晴らしいコミュニティであり、ここで多くのプログラミングの答えを見つけました。

複数の列を持つテーブルがあり、そのうち5つには日付またはnullが含まれています。

5つの列のうちの1つに「NULL」値が含まれている場合、戻り値がnullであるという条件で、基本的に5つの列を1つの列に結合するSQLクエリを記述したいと思います。基本的に、最初の非nullを返す合体条件の反対で、最初のnullを返したいと思います。nullがない場合は、5つの日付のうち最大のものを返すのが最適ですが、5つの日付のいずれかを返すことで解決できます。

クエリの戻り値:

どうもありがとうございます。

(サーバーはMSSQL2008です)

0 投票する
7 に答える
62387 参照

sql-server - Nullでない場合は入力パラメータをチェックし、SQL Serverのどこでそれを使用する

WHERE入力パラメーターを句に含め、null の場合は除外する最良の方法は何ですか?

私が信じている方法はいくつかありますが、そのときは思い出せないようです。

また、使用できCOALESCE()ますか?しかし、これは値を選択するためだけのものだと思いますか?

編集

明確にするために、変数が呼ばれるとしましょう@code ="1"my where になりますWhere type='B' AND code = @codeが、必要な場合@code is nullWhere type='B'、不足していることに注意してcode = @codeください。

0 投票する
0 に答える
4072 参照

sql - T-SQL SELECTは、複数の行を1つの列に結合します

これは、SQL Server 2008を実行しているシソーラスデータベースであり、用語とカテゴリが相互にリンクされています。階層データ。単に3つのテーブル:

次に、カテゴリコードごとにいくつかの記述子(参照付きの用語)を抽出します。

結果はかなり混乱しています:

などなど...

単一の出力列で次のように表示したいと思います。

UNPIVOTが合わないようです。多分CTE+COALESCE?

パターンに従って行を1つの列に変換する方法はありますか?

0 投票する
2 に答える
3512 参照

select - CASE 式でネストされた SELECT ステートメント

ご挨拶、

これが私の問題です。
複数の行からデータを取得し、より大きなクエリで単一の結果として返す必要があります。

私はすでに同様の質問をここに投稿しました。 メインクエリ内の 1 つの列に複数の値を返しますが、SQL の知識が不足しているため、答えがうまくいかなかったため、質問があいまいになったのではないかと思います。
私は Microsoft SQL 2005 を使用しています。
これが私が持っているものです。

CaseID を PK とする複数のテーブル。CaseID は一意です。
CaseID と ItemNum(AutoInc) を PK として組み合わせた 1 つのテーブル (tblKIN)。
データベース内の各個人には、複数の親戚がいる可能性が高いためです。
SQLクエリウィンドウで次を実行すると、機能します。

これは、同じ住所に住んでいるすべての人の関係を返します。結果はこんな感じ・・・
父、姪、妹、息子

さて、私にとっての問題は、それをメインクエリにどのように追加するかです。
関連情報に短縮すると、主なクエリは次のようになります。

私が受け取るエラーは次のとおりです。
サーバー: メッセージ 156、レベル 15、状態 1、行 13
キーワード「DECLARE」付近の構文が正しくありません。
サーバー: メッセージ 156、レベル 15、状態 1、行 18
キーワード「ELSE」付近の構文が正しくありません。

DECLARE から SELECT @KINList の末尾までを括弧内に入れ子にしてみました。
CASE ステートメントの THEN セクションに BEGIN と END を追加してみました。
どちらも機能しませんでした。

ソース テーブル データは次のようになります。(読みやすくするためにピリオドを追加)
tblCase
CaseID Name Address
10-001 Jim......100 Main St.
10-002 Tom....150 Elm St.
10-003 Abe.....200 1st St.

tblKIN
CaseID ItemNum Name Relation Address
10-001 00001 Steve...Son........100 Main St.
10-002 00002 James..Father....150 Elm St.
10-002 00003 Betty.. ..Niece......150 Elm St.
10-002 00004 Greta...Sister.....150 Elm St.
10-002 00005 Davey..Son........150 Elm St. .
10-003 00006 エドガー...ブラザー...200 1st St.

CaseID = 10-002 のクエリを実行すると、次のものが返される必要があります。
CaseID 名前 住所.......親戚
10-002 Tom...150 Elm St. ..Father, Niece, Sister, Son

これはおそらく簡単な修正であると確信していますが、その方法がわかりません。
お時間をいただきありがとうございます。質問が長くなって申し訳ありませんが、はっきりさせておきたいと思います。

ありがとう !!!

0 投票する
1 に答える
1837 参照

sql-server-2005 - 「null」varchar を 10 進数に変換します

sql-server-2005 で (C フレーズを借用するために) いくつかの xml 構造体を作成する必要があります。これを行うために、すべての値を varchar に変更します。これらの値を使用したいときに問題が発生します。それらを10進数に変換する必要があります。

したがって、私の xml コードは次のようになります。

このようにして、VAL が null の場合、特別な 10 進数を返し、その 10 進数をチェックできます。これを行うことの欠点は、値を使用するときに相手側で合体を使用できないことです。変換された値が 0 に等しいかどうかを確認する必要があります。次のように:

現時点ではパフォーマンスが受け入れられないため、パフォーマンスを改善する方法の 1 つは、入れ子になった case ステートメントを使用する代わりに、coalesce を使用して、特別な「null」に相当する値と等しいかどうかをチェックすることではないかと考えました。

何かご意見は?

また、 select cast('null' as decimal(10,5)) が私に与えることがわかります:

0 投票する
4 に答える
2010 参照

c# - null合体演算子はスレッドセーフですか?

これが問題の要点です: Foo.Bar は null を返すことができますか? 明確にするために、「_bar」は、null 以外として評価された後、値が返される前に null に設定できますか?

次の get メソッドの使用は安全ではなく、null 値を返す可能性があることはわかっています。

アップデート:

同じ問題を別の方法で見ると、次の例がより明確になります。

GetValue(...) が null を返すことはありますか? 定義によっては、これはスレッドセーフである場合とそうでない場合があります...正しい問題のステートメントは、値に対するアトミック操作であるかどうかを尋ねていると思います... David Yawは、上記の関数が同等であると言って質問を最もよく定義しました以下に:

0 投票する
2 に答える
996 参照

sql - 結合で COALESCE が機能しない

誰かがこれについてより良い考えを持っていると確信しているので、ここに行きます-他のテーブルの行を表す一連のID(@tbLink)を持つテーブルがあります。ここで表現しようとしている

私の結果は次のとおりです。

しかし、行 1 は「Module1」ではなく「ProgramA」であると予想していました。これも COALESCE の正しい使い方ですか?

乾杯

マイク

0 投票する
5 に答える
5463 参照

sql - MSSQL 2008 で行を結合し、

ここでは、MSSQL 2008 で最善のアプローチを決定しようとしています。

ここに私のサンプルデータがあります

Id でグループ化され、TransDate で並べ替えられている場合、アクティブな列の最後の非 Null 値と TransDate の MAX が必要です

結果は次のとおりです。

合体に似ていますが、2 つの値/列ではなく行を超えています。

この同様の方法が適用される他の多くの列があるため、列ごとに個別の結合を作成したくありません。

何か案は?