SQL_SERVER Telegram 755
سلام خدمت دوستان عزیزم

امیدوارم حالتون عالی عالی باشه

یکی از مسائلی که ممکنه باهاش در محاسبات برخورد کنید نحوه رفع خطای Divide by zero هست که در ادامه روشهای گوناگون اون رو باهم بررسی می کنیم.

مثال زیر را در نظر بگیرید.

DECLARE @Product1 INT;
DECLARE @Product2 INT;
SET @Product1 = 20;
SET @Product2 = 0;
SELECT @Product1 / @Product2 AS ProductRatio;
با اجرای کد بالا خطای Divide by zero را دریافت خواهید کرد.

روش اول این هست که از تابع nullif استفاده کنید.

DECLARE@Product1INT;
DECLARE@Product2INT;
SET@Product1= 20;
SET@Product2=0;
SELECT@Product1/ NullIf(@Product2,0) AS ProductRatio;
روش دوم استفاده از Case When هست



DECLARE @Product1 INT;
DECLARE @Product2 INT;
SET @Product1 = 50;
SET @Product2 = 0;
SELECT @Product1 / case
when @product2= 0
then null
else @product2 end as ProductRatio;


روش سوم استفاده از Set ArithAbort هست



به صورت پیش فرض این دستور On هست و زمانی که یک تقسیم برصفر رخ بده ، خطا تولید میکنه. در صورتی که اونو غیرفعال کنید خروجی دستور null خواهد شد.

set arithabort off;
Set ansi_warnings off
DECLARE @Product1 INT;
DECLARE @Product2 INT;
SET @Product1 = 20;
SET @Product2 = 0;
SELECT @Product1 / @Product2 ProductRatio;
نکته : پیشنهاد میشه از روش سوم تا جای ممکن استفاده نشه که میتونه براتون مشکلات Performance ایجاد کنه. ترجیحا از دو روش ابتدایی استفاده کنید بهتره.

شاد باشین و شکرگزار

حمیدرضا صادقیان
👍45👌5👏4🤩2🔥1



tgoop.com/sql_server/755
Create:
Last Update:

سلام خدمت دوستان عزیزم

امیدوارم حالتون عالی عالی باشه

یکی از مسائلی که ممکنه باهاش در محاسبات برخورد کنید نحوه رفع خطای Divide by zero هست که در ادامه روشهای گوناگون اون رو باهم بررسی می کنیم.

مثال زیر را در نظر بگیرید.

DECLARE @Product1 INT;
DECLARE @Product2 INT;
SET @Product1 = 20;
SET @Product2 = 0;
SELECT @Product1 / @Product2 AS ProductRatio;
با اجرای کد بالا خطای Divide by zero را دریافت خواهید کرد.

روش اول این هست که از تابع nullif استفاده کنید.

DECLARE@Product1INT;
DECLARE@Product2INT;
SET@Product1= 20;
SET@Product2=0;
SELECT@Product1/ NullIf(@Product2,0) AS ProductRatio;
روش دوم استفاده از Case When هست



DECLARE @Product1 INT;
DECLARE @Product2 INT;
SET @Product1 = 50;
SET @Product2 = 0;
SELECT @Product1 / case
when @product2= 0
then null
else @product2 end as ProductRatio;


روش سوم استفاده از Set ArithAbort هست



به صورت پیش فرض این دستور On هست و زمانی که یک تقسیم برصفر رخ بده ، خطا تولید میکنه. در صورتی که اونو غیرفعال کنید خروجی دستور null خواهد شد.

set arithabort off;
Set ansi_warnings off
DECLARE @Product1 INT;
DECLARE @Product2 INT;
SET @Product1 = 20;
SET @Product2 = 0;
SELECT @Product1 / @Product2 ProductRatio;
نکته : پیشنهاد میشه از روش سوم تا جای ممکن استفاده نشه که میتونه براتون مشکلات Performance ایجاد کنه. ترجیحا از دو روش ابتدایی استفاده کنید بهتره.

شاد باشین و شکرگزار

حمیدرضا صادقیان

BY SQL Server


Share with your friend now:
tgoop.com/sql_server/755

View MORE
Open in Telegram


Telegram News

Date: |

The public channel had more than 109,000 subscribers, Judge Hui said. Ng had the power to remove or amend the messages in the channel, but he “allowed them to exist.” Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. Avoid compound hashtags that consist of several words. If you have a hashtag like #marketingnewsinusa, split it into smaller hashtags: “#marketing, #news, #usa. Click “Save” ; ‘Ban’ on Telegram
from us


Telegram SQL Server
FROM American