現在、有効な都市と州の値を取得する呼び出し元アプリケーションを提供するストアド プロシージャを作成しています。
zip_code を指定すると、ストアド プロシージャは、指定された入力パラメーターのすべての有効な都市/州の組み合わせのリストを返します。
ただし、zip_code が存在しない場合、ストアド プロシージャはエラー文字列「ZipCode Wrong!」を返す必要があります。空のデータセットではなく、呼び出し元のアプリケーションに戻ります。
私は2つのアプローチを検討しました:
最初のアプローチ
SELECT City, State FROM ZipCodeTable WHERE Zip = @ZipCode
IF (@@ROWCOUNT = 0)
return 'ZipCode Wrong!'
第二のアプローチ
SELECT COALESCE(
(SELECT City, State FROM ZipCodeTable WHERE Zip=@ZipCode FOR XML PATH ('')),
(SELECT 'ZipCode Wrong!') FOR XML PATH (''))
このトランザクションは毎秒何回も実行されるため、できるだけ効率的にしたいと考えています。パフォーマンスの観点から、どちらがより効率的ですか? また、別のより良いアプローチがあれば、遠慮なく教えてください。ありがとう!