programing

SQL Server 텍스트 열이 비어 있는지 확인하려면 어떻게 해야 합니까?

starjava 2023. 4. 7. 20:47
반응형

SQL Server 텍스트 열이 비어 있는지 확인하려면 어떻게 해야 합니까?

SQL Server 2005를 사용하고 있습니다.텍스트 열이 있는 테이블과 이 열의 값이 null이 아닌 빈 행이 여러 개 있습니다." 와 비교를 시도하면 다음과 같은 응답이 나타납니다.

데이터 유형 텍스트와 varchar가 연산자에 호환되지 않습니다.

텍스트 열의 값이 null이 아니라 비어 있는지 확인하는 특별한 함수가 있습니까?

where datalength(mytextfield)=0
ISNULL(
case textcolum1
    WHEN '' THEN NULL
    ELSE textcolum1
END 
,textcolum2) textcolum1

사실 LIKE 연산자를 사용하면 됩니다.

SELECT * FROM mytable WHERE mytextfield LIKE ''

빈 값만 가져오려면(null 값이 아닌)

SELECT * FROM myTable WHERE myColumn = ''

null 값과 빈 값을 모두 가져오려면:

SELECT * FROM myTable WHERE myColumn IS NULL OR myColumn = ''

null 값만 가져오려면:

SELECT * FROM myTable WHERE myColumn IS NULL

null 및 empty 이외의 값을 가져오려면:

SELECT * FROM myTable WHERE myColumn <> ''


LIKE 문구는 다른 유형의 검색에 비해 성능이 저하되므로 필요할 때만 사용하십시오.

SELECT * FROM TABLE
WHERE ISNULL(FIELD, '')=''

IS NULL 연산자를 사용합니다.

Select * from tb_Employee where ename is null

이 게시물이 오래됐다는 건 알지만, 유용하다는 걸 알았어요.

빈 텍스트 필드가 아닌 레코드가 반환되는 문제가 해결되지 않아 솔루션을 추가하려고 생각했습니다.

이것은 나에게 효과가 있었던 장소 조항이다.

WHERE xyz LIKE CAST('% %' as text)

데이터 메서드를 사용합니다.다음은 예를 제시하겠습니다.

SELECT length = DATALENGTH(myField)
FROM myTABLE

사용하는 대신isnull을 사용하다case퍼포먼스가 뛰어나기 때문에 케이스가 더 좋습니다.

case when campo is null then '' else campo end

이 문제에서는 다음 작업을 수행해야 합니다.

case when campo is null then '' else
  case when len(campo) = 0 then '' else campo en
end

다음과 같은 코드:

create table #tabla(
id int,
campo varchar(10)
)

insert into #tabla
values(1,null)

insert into #tabla
values(2,'')

insert into #tabla
values(3,null)

insert into #tabla
values(4,'dato4')

insert into #tabla
values(5,'dato5')

select id, case when campo is null then 'DATA NULL' else
  case when len(campo) = 0 then 'DATA EMPTY' else campo end
end
from #tabla

drop table #tabla

SUBSTRING(text Column, 0, 1)에 대해 테스트합니다.

null과 빈 문자열이 동일합니까?만약 그렇다면, 나는 내 응용 프로그램에 논리를 포함시키고(또는 앱이 "즉시 사용 가능"인 경우에는 트리거) 필드를 강제로 null 또는 '''로 만들지만, 다른 필드는 포함하지 않습니다.'를 선택한 경우 열을 NOT NULL로 설정할 수도 있습니다.그냥 데이터 정리에 관한 거야

값이 null이거나 비어 있을 때 미리 정의된 텍스트("사용 가능한 랩 없음")를 표시하려고 했는데 친구가 이 작업을 도와주었습니다.

StrengthInfo = CASE WHEN ((SELECT COUNT(UnitsOrdered) FROM [Data_Sub_orders].[dbo].[Snappy_Orders_Sub] WHERE IdPatient = @PatientId and IdDrugService = 226)> 0)
                            THEN cast((S.UnitsOrdered) as varchar(50))
                    ELSE 'No Labs Available'
                    END

두 가지 작업을 모두 수행해야 합니다.

SELECT * FROM Table WHERE Text IS NULL or Text LIKE ''

이 문제에 대한 많은 대안이 있다는 것을 알지만, @Eric Z Beard & @Tim Cooper와 @Enrique Garcia & @Uli Köhler에 의해 최선의 해결책으로 판명된 것을 정리하고 싶습니다.

아래 쿼리는 0이 아닌 1을 반환하므로 공간만 사용 사례 시나리오에서 빈 공간과 같을 수 있다는 사실을 처리하기 위해 필요한 경우.

SELECT datalength(' ')

그래서 저는 다음과 같은 것을 하고 싶습니다.

SELECT datalength(RTRIM(LTRIM(ISNULL([TextColumn], ''))))

이것을 시험해 보세요.

select * from mytable where convert(varchar, mycolumn) = ''

널 도와주길 바래!

DECLARE @temp as nvarchar(20)

SET @temp = NULL
--SET @temp = ''
--SET @temp = 'Test'

SELECT IIF(ISNULL(@temp,'')='','[Empty]',@temp)

다음 두 가지 작업을 수행합니다.

  1. Null 검사 및 문자열 Null 검사
  2. 빈 값을 NA 등의 기본값으로 바꿉니다.
SELECT coalesce(NULLIF(column_name,''),'NA') as 'desired_name') from table;

언급URL : https://stackoverflow.com/questions/33409/how-do-i-check-if-a-sql-server-text-column-is-empty

반응형