タグ付けされた質問 「coalesce」

8
最初の引数がNULLでなくても、SQL ServerはCOALESCE関数をすべて読み取りますか?
T-SQL COALESCE関数を使用していますが、最初の引数は実行された時間の約95%でnullになりません。最初の引数がのNULL場合、2番目の引数は非常に長いプロセスです。 SELECT COALESCE(c.FirstName ,(SELECT TOP 1 b.FirstName FROM TableA a JOIN TableB b ON .....) ) たとえば、c.FirstName = 'John'SQL Serverは引き続きサブクエリを実行しますか? VB.NET IIF()関数では、2番目の引数がTrueの場合、コードは3番目の引数を読み取ります(使用されなくても)。

1
要素をテーブルにアップサートするときに「列参照があいまいです」
データベースとしてPostgreSQLを使用しています。そして、データベースにエントリを作成する必要があります。それが既に存在する場合は、そのフィールドを更新するだけですが、フィールドの1つは、設定されていない場合にのみ更新する必要があります。 私はこの質問の情報を使用しました:https : //stackoverflow.com/questions/13305878/dont-update-column-if-update-value-is-null、それは私が持っているものとかなり関連しています。 このクエリを使用しようとしましたが、実行すると次のエラーが発生しColumn reference 'affiliate_code' is ambiguousます。 INSERT INTO accounts (id, token, affiliate_code) VALUES (value1, value2, value3) ON CONFLICT (id) DO UPDATE SET token = value2, affiliate_code = COALESCE(affiliate_code, value3); (もちろん、実際の値は置き換えられます)。 で置き換えるaffiliate_code = COALESCE(affiliate_code, value3)とaffiliate_code = value3、すべてが機能しますが、希望どおりには機能しません。 どうすればこれを機能させることができますか? これが私のテーブルの定義方法です: CREATE TABLE accounts ( id VARCHAR NOT NULL UNIQUE, …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.