我目前正在编写一个存储过程,它为调用应用程序提供有效城市和州值的检索。
当提供 zip_code 时,存储过程将返回指定输入参数的所有有效城市/州组合的列表。
但是,如果 zip_code 不存在,则存储过程必须返回错误字符串“ZipCode Wrong!” 返回到调用应用程序而不是空数据集。
我考虑了两种方法:
第一种方法
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 (''))
由于此事务每秒将运行很多次,我想让它尽可能高效。从性能的角度来看,哪个更有效?另外,如果还有其他更好的方法,请随时告诉我。谢谢!