WHEREকলামটি শূন্য নয় এবং খালি স্ট্রিং ( '') নয় কিনা তা আমরা কীভাবে একটি এসকিউএল সার্ভার শর্তে পরীক্ষা করতে পারি ?
WHEREকলামটি শূন্য নয় এবং খালি স্ট্রিং ( '') নয় কিনা তা আমরা কীভাবে একটি এসকিউএল সার্ভার শর্তে পরীক্ষা করতে পারি ?
উত্তর:
যদি আপনি কেবল একটি খালি স্ট্রিং হিসাবে "" মিলাতে চান
WHERE DATALENGTH(COLUMN) > 0
আপনি যদি শূন্যস্থান থেকে সম্পূর্ণরূপে গঠিত কোনও স্ট্রিংটি গণনা করতে চান
WHERE COLUMN <> ''
NULLএকটি WHEREক্লজ ব্যবহার করার সময় এই দুটিই মান ফেরত দেবে না । এর চেয়ে এগুলি NULLহিসাবে মূল্যায়ন করবে ।UNKNOWNTRUE
CREATE TABLE T
(
C VARCHAR(10)
);
INSERT INTO T
VALUES ('A'),
(''),
(' '),
(NULL);
SELECT *
FROM T
WHERE C <> ''
কেবল একক সারি ফেরত দেয় A। অর্থাত্ সারিগুলি NULLবা একটি খালি স্ট্রিং বা একটি স্ট্রিং সম্পূর্ণরূপে ফাঁকা স্থানগুলি এই কোয়েরি দ্বারা বাদ দেওয়া হয়েছে।
columnকোনও সূচক থাকে, তবে আপনার ক্যোয়ারী সম্ভবত এটি ব্যবহার করবে না
WHERE NULLIF(your_column, '') IS NOT NULL
আজকাল (সাড়ে ৪ বছর), মানুষের পড়া সহজ করার জন্য, আমি কেবল এটি ব্যবহার করব
WHERE your_column <> ''
নাল চেকটি সুস্পষ্ট করার লোভ রয়েছে ...
WHERE your_column <> ''
AND your_column IS NOT NULL
... যেমন যেমন মার্টিন স্মিথ গ্রহণযোগ্য উত্তরে দেখিয়েছেন, এটি আসলে কিছুই যুক্ত করে না (এবং আমি ব্যক্তিগতভাবে এসকিউএল নালগুলি আজকাল পুরোপুরি বাদ দিই, সুতরাং এটি আমার পক্ষে প্রযোজ্য হবে না!)।
কোলেসেস নালকে ডিফল্ট হিসাবে ভাঁজ করবে:
COALESCE (fieldName, '') <> ''
মৌলিক উপায়ে
SELECT *
FROM [TableName]
WHERE column_name!='' AND column_name IS NOT NULL
শুধু পরীক্ষা করুন: যেখানে মান> '' - নাল নয় এবং খালি নয়
-- COLUMN CONTAINS A VALUE (ie string not null and not empty) :
-- (note: "<>" gives a different result than ">")
select iif(null > '', 'true', 'false'); -- false (null)
select iif('' > '', 'true', 'false'); -- false (empty string)
select iif(' ' > '', 'true', 'false'); -- false (space)
select iif(' ' > '', 'true', 'false'); -- false (tab)
select iif('
' > '', 'true', 'false'); -- false (newline)
select iif('xxx' > '', 'true', 'false'); -- true
--
--
-- NOTE - test that tab and newline is processed as expected:
select 'x x' -- tab
select 'x
x' -- newline
WHERE COALESCE(column, '') <> ''?