2010-11-20 21 views
0

employee_idとemployee_nameを持つEmployeeテーブルがあります

このテーブルに "james"を挿入します。
Employeeテーブルにはすでに、私は彼のEMPLOYEE_IDがテーブルに複数の「ジェームズ」の記録(重複)を持っていれば
を返し何もしないし、何の「ジェームズ」が存在しない場合
をスキップすることにしたい1「ジェームズ」のレコードを持っている場合は、I "james"と返される新しいemployee_idを挿入したいこのケースのSQLクエリ?

みんなどのようにこの質問を書いていますか?

更新:私のquestionの別の答えがこの問題を解決しました。あなたの指導に感謝します。

答えて

0

これを行うには、ストアドプロシージャを記述する必要があります。これをご存知ですか?また、サーバーから複数回データベースを照会することもできます。

+0

感謝。実際には、ストアドプロシージャにすべてのものが含まれています.iは、その中にいくつかの "if"を実行できます。しかし、私は重複チェックを行うための単一のSQL文があると思います。 – vijay

+0

私はちょうどifsを進めるでしょう。私はあなたがそれを望むように動作する単一のクエリを思いつくことができません。 –

0

私はMERGEステートメントがあなたが探しているものだと思います。

+0

かもしれませんが、どうですか?なぜその質問を扱う答えを出さないのですか? – pdwalker

+1

マージは良い選択ですが、OPには問題をプロシージャに強制するいくつかの特定の要件があります。いったん手順では、マージは実際には、それ以外の場合はロジックを入力していくつかのより多くの伝統的な探して本当に購入しません。 – Randy

0

@@行数の機能を使用することを許可されている場合は、次の迅速な応答を

 
DECLARE @EmployeeId int 

SELECT TOP 2 @EmployeeId = employee_id 
FROM @Employee 
WHERE employee_name = 'james' 

IF @@Rowcount > 1 
BEGIN 
    PRINT 'Many matching rows found' 
    RETURN; 
END 

IF @EmployeeId IS NULL 
    -- INSERT ... 
ELSE 
    -- RETURN @EmployeeId 
+0

Ivan、テストで "IS NOT NULL"を意味しましたか?値がnullでない場合、select文は何らかのデータを見つけましたか? –

+0

ありがとう!私はそれを修正しました。 –