मैं जानना चाहूंगा कि WHERE
SQL सर्वर में एक क्लॉज में एक ही समय में NULL और एक खाली स्ट्रिंग का उपयोग कैसे करें । मुझे ऐसे रिकॉर्ड खोजने की जरूरत है, जिसमें या तो अशक्त मूल्य हैं या एक रिक्त स्ट्रिंग है। धन्यवाद।
मैं जानना चाहूंगा कि WHERE
SQL सर्वर में एक क्लॉज में एक ही समय में NULL और एक खाली स्ट्रिंग का उपयोग कैसे करें । मुझे ऐसे रिकॉर्ड खोजने की जरूरत है, जिसमें या तो अशक्त मूल्य हैं या एक रिक्त स्ट्रिंग है। धन्यवाद।
जवाबों:
Select *
From Table
Where (col is null or col = '')
या
Select *
From Table
Where IsNull(col, '') = ''
आप बस यह कर सकते हैं:
SELECT *
FROM yourTable
WHERE yourColumn IS NULL OR yourColumn = ''
यदि आपको इसे सेलेक्ट सेक्शन में जरूरत पड़े तो आप इस तरह का उपयोग कर सकते हैं।
SELECT ct.ID,
ISNULL(NULLIF(ct.LaunchDate, ''), null) [LaunchDate]
FROM [dbo].[CustomerTable] ct
आप null
अपने प्रतिस्थापन मूल्य के साथ बदल सकते हैं ।
SELECT *
FROM TableName
WHERE columnNAme IS NULL OR
LTRIM(RTRIM(columnName)) = ''
ltrim
और rtrim
यदि लक्ष्य केवल खाली स्ट्रिंग की तुलना करना है। REASON: यदि केवल व्हॉट्सएप है, तो एक ट्रिम सभी को हटा देगा। उदाहरण के लिए, आपको परवाह नहीं है कि तुलना विफल हो जाती है क्योंकि जो रहता है वह "एबीसी" या "एबीसी" है।
उन पंक्तियों को खोजने के लिए जहां कर्नल है NULL
, खाली स्ट्रिंग या व्हाट्सएप (रिक्त स्थान, टैब):
SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')=''
उन पंक्तियों को खोजने के लिए जहां कर्नल है NOT NULL
, खाली स्ट्रिंग या व्हाट्सएप (रिक्त स्थान, टैब):
SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')<>''
कुछ सारगर्भित तरीके ...
SELECT *
FROM #T
WHERE SomeCol = '' OR SomeCol IS NULL;
SELECT *
FROM #T
WHERE SomeCol = ''
UNION ALL
SELECT *
FROM #T
WHERE SomeCol IS NULL;
SELECT *
FROM #T
WHERE EXISTS ((SELECT NULL UNION SELECT '') INTERSECT SELECT SomeCol);
और कुछ गैर-सारगर्भित ...
SELECT *
FROM #T
WHERE IIF(SomeCol <> '',0,1) = 1;
SELECT *
FROM #T
WHERE NULLIF(SomeCol,'') IS NULL;
SELECT *
FROM #T
WHERE ISNULL(SomeCol,'') = '';
मेरा सबसे अच्छा समाधान:
WHERE
COALESCE(char_length(fieldValue), 0) = 0
COALESCE अभिव्यक्ति सूची () में पहला गैर-नल विस्तार देता है।
यदि फ़ील्डवैल्यू शून्य या रिक्त स्ट्रिंग है तो: हम दूसरा तत्व वापस करेंगे।
तो 0 0 के बराबर है तो यह फील्डवैल्यू एक शून्य या रिक्त स्ट्रिंग है।
छूट के लिए अजगर में:
def coalesce(fieldValue):
if fieldValue in (null,''):
return 0
सौभाग्य
you is check null with LULL (RTRIM (LTRIM (Column))) = के साथ NULL और स्ट्रिंग को खाली करें
SELECT *
FROM AppInfra.Person
WHERE LEN(RTRIM(LTRIM(NationalCode))) = 0 OR NationalCode IS NULL
select
isnull(column,'') column, *
from Table
Where column = ''
SELECT *
FROM Table
WHERE column like '' or column IS NULL OR LEN(column) = 0
आप टेक्स्ट फ़ील्ड के isnull
दोनों null
और खाली मान प्राप्त करने के लिए फ़ंक्शन का उपयोग कर सकते हैं :
SELECT * FROM myTable
WHERE isnull(my_nullable_text_field,'') = ''
--setup
IF OBJECT_ID('tempdb..#T') IS NOT NULL DROP TABLE #T;
CREATE TABLE #T(ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, NAME VARCHAR(10))
INSERT INTO #T (Name) VALUES('JOHN'),(''),(NULL);
SELECT * FROM #T
1 JOHN
2 -- is empty string
3 NULL
आप जांच कर सकते हैं ''
के रूप में NULL
इसे करने के लिए परिवर्तित करने NULL
का उपयोग करNULLIF
--here you set '' to null
UPDATE #T SET NAME = NULLIF(NAME,'')
SELECT * FROM #T
1 JOHN
2 NULL
3 NULL
या आप का उपयोग कर के NULL
रूप में जांच कर सकते हैं''
SELECT ISNULL(NULL,'')
-- here you set NULL to ''
UPDATE #T SET NAME = ISNULL(NULL,'') WHERE NAME IS NULL
SELECT * FROM #T
1 JOHN
2 -- is empty string
3 -- is empty string
--clean up
DROP TABLE #T
स्प्रो में, आप निम्न स्थिति का उपयोग कर सकते हैं:
DECLARE @USER_ID VARCAHR(15)=NULL --THIS VALUE IS NULL OR EMPTY DON'T MATTER
IF(COALESCE(@USER_ID,'')='')
PRINT 'HUSSAM'
इस कार्य द्वारा:
ALTER FUNCTION [dbo].[isnull](@input nvarchar(50),@ret int = 0)
RETURNS int
AS
BEGIN
return (case when @input='' then @ret when @input is null then @ret else @input end)
END
और इसका उपयोग करें:
dbo.isnull (मूल्य, 0)
SELECT * FROM DBO.AGENDA
WHERE
--IF @DT_START IS NULL OR EMPTY
( ISNULL( @DT_START,'' ) = '' AND DT_START IS NOT NULL ) -- GET ALL DATE
OR --ELSE
( DT_START >= @DT_START ) --FILTER
-- MORE FILTER
SELECT * FROM DBO.AGENDA
WHERE
( ( ISNULL( @DT_START,'' ) = '' AND DT_START IS NOT NULL ) OR ( DT_START >= @DT_START ) )
AND
DT_END < GETDATE()