164

WHERESQL Server の句でNULL と空の文字列を同時に使用する方法を知りたいです。null 値または空の文字列を持つレコードを見つける必要があります。ありがとう。

4

16 に答える 16

290
Select *
From Table
Where (col is null or col = '')

または

Select *
From Table
Where IsNull(col, '') = ''
于 2013-03-27T15:55:01.257 に答える
44

SELECTセクションで必要な場合は、このように使用できます。

SELECT ct.ID, 
       ISNULL(NULLIF(ct.LaunchDate, ''), null) [LaunchDate]
FROM   [dbo].[CustomerTable] ct

nullを置換値に置き換えることができます。

于 2015-12-22T10:40:19.263 に答える
29

これを簡単に行うことができます:

SELECT *
FROM   yourTable
WHERE  yourColumn IS NULL OR yourColumn = ''
于 2013-03-27T15:54:37.600 に答える
18
SELECT *
FROM   TableName
WHERE  columnNAme IS NULL OR 
       LTRIM(RTRIM(columnName)) = ''
于 2013-03-27T15:53:09.553 に答える
8

col がNULL、空の文字列、または空白 (スペース、タブ) である行を検索するには:

SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')=''

col がNOT NULL、空の文字列、または空白 (スペース、タブ) である行を検索するには:

SELECT *
FROM table
WHERE ISNULL(LTRIM(RTRIM(col)),'')<>''
于 2015-10-09T02:30:10.453 に答える
7

いくつかのsargableメソッド...

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,'') = '';
于 2015-12-08T18:17:01.393 に答える
3

これは醜い MSSQL です:

CASE WHEN LTRIM(RTRIM(ISNULL([Address1], ''))) <> '' THEN [Address2] ELSE '' END
于 2015-09-29T16:37:24.960 に答える
3

関数を使用して、テキスト フィールドの値と空の値のisnull両方を取得できます。null

SELECT * FROM myTable
WHERE isnull(my_nullable_text_field,'') = ''
于 2013-03-27T15:59:08.057 に答える
2
SELECT *
FROM   Table
WHERE  column like '' or column IS NULL OR LEN(column) = 0
于 2013-03-27T15:55:19.480 に答える
1
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()
于 2018-01-18T20:06:49.773 に答える