بهترین فرصت آموزش در جشنواره تخفیف های توسینسو بهترین فرصت آموزش در جشنواره تخفیف های توسینسو
مانده تا پایان تخفیف ها
مشاهده دوره ها
0

یافتن فیلدهای خالی در SQL Server

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

برای یافتن فیلدهای خالی و فیلدهایی که NULL هستند در SQL Server چگونه باید عمل کرد؟

مثلا می خواهم لیست افرادی را نمایش بدهد که فیلد Name آنها خالی است و مقداری در آن وارد نشده.( در برخی از فیلدهای من عبارت NULL وجود دارد و در برخی دیگر به صورت خودکار معادل طول رشته آن فیلد فضای خالی قرار گرفته ).

با سپاس و تشکر فراوان

پرسیده شده در 1393/11/06 توسط

10 پاسخ

3

فرض میکنیم که نام جدول شما T2 هست و دارای Code و number و Name هست و برای اینکه بدونید کدام یک از Name ها خالی هست از دستور های زیر استفاده کنید

SELECT * FROM T2 WHERE Name IS NULL OR Name = '';

یا

SELECT * FROM T2 WHERE NULLIF(Name, '') IS NULL;

خروجی هم به شکل زیر در میاد

فرض میکنیم که نام جدول شما T2 هست و دارای Code و number و Name هست و برای اینکه بدونید کدام یک از Name ها خالی هست از دستور های زیر استفاده کنید
<sql>
SELECT * FROM T2 WHERE Name IS NULL OR Name = '';
<sql>
یا
<sql>
SELECT * FROM T2 WHERE NULLIF(Name, '') IS NULL;
<sql>
خروجی هم به شکل زیر در میاد
||http://dba.tosinso.com/files/get/38e26297-67e9-428d-bbee-779573fc652a||

پاسخ در 1393/11/06 توسط
0

یک رشته از نوع nchar(10) هستش که داخل آنها اعداد و حروف انگلیسی هستش

پاسخ در 1393/11/06 توسط
3

مشکل این بود که count(*) همه رکوردهارو برمیگردونه اما وقتی برای count نام ستون رو مشخص میکنی فقط ردیف هایی که مقدارشون null نیست در نظر گرفته میشن.

پاسخ در 1393/11/06 توسط
0

با تشکر از شمادوست عزیز

باتوجه به راهنمایی شما حالا من بخواهم تعداد افرادی را که فیلد Name آنها خالی هست را بدست بیاورم از دستور زیر استفاده می کنم و نتیجه ای متفاوت مشاهده می کنم.

من ابتدا می نویسم کد زیر را:

SELECT * FROM T2 WHERE Name IS NULL OR Name = '';

سپس برای بدست آوردن تعداد آنها کد زیر را می نویسم :

SELECT COUNT(Name) FROM T2 WHERE Name IS NULL OR Name = '';

که تعداد افرادی که در دستور اول نشان میدهد با تعداد افرادی که در دستور دوم نشان می دهد متفاوت است. علت اینکه عملکرد دستور اول با دستور دوم متفاوت است چیست؟

باتشکر

پاسخ در 1393/11/06 توسط
1

در دستور اول درست میاره و کامل ولی فقط وقتی از COUNT(Name) استفاده کنم اشتباه می کنه.

پاسخ در 1393/11/06 توسط
1

دستورات شما روی SQL من به درستی نتیجه رو نشون میده یعنی چه NULL و چه خالی بود رو برامون برمیگردونه اطلاعات داخل جدول ات چیه؟

دستورات شما روی  SQL من به درستی نتیجه رو نشون میده یعنی چه NULL و چه خالی بود رو برامون برمیگردونه اطلاعات داخل جدول ات چیه؟
||http://dba.tosinso.com/files/get/5bf337b5-c34b-4a44-b66d-0efb110d7727||

پاسخ در 1393/11/06 توسط
2

کد زیر رو جایگزین قبلیه کن

SELECT COUNT(*) FROM T2 WHERE Name IS NULL or Name = '';
پاسخ در 1393/11/06 توسط
0

برای مثال من هم nchar هست ببینید در صورتی محاسبه میکنه که با خالی باشه یا با Space پر شده باشه در این صورت براتون محاسبه میشه من فکر میکنم شما عبارت NULL رو داخل ستون Name تایپ کرده باشید که اگر این چنین هست پس Name شما برابر با خالی نیست چون NULL رو تایپ کردید.

پاسخ در 1393/11/06 توسط
0

در دستور من فقط عبارتهای Name = '' را محاسبه می کنه و مقادیری را که داخل آنها NULL نوشته شده را حساب نمی کنه.

پاسخ در 1393/11/06 توسط

پاسخ شما