[SQL] 그것은 선택하는 것이 가능하다 비트로 직접 EXISTS?
SQL그것은 선택하는 것이 가능하다 비트로 직접 EXISTS?
그것은 이런 식으로 뭔가를 (작업을하지 않는) 할 수 있는지 궁금 해서요 :
(표 SELECT * FROM 존재 ((캐스트를 선택 어디 비트에 '값 %'))와 같은 열
그것을 행할 수 있어야처럼 보인다,하지만 SQL에서 작동해야 일이 많이 안) 내가 어디 하나를 선택합니다 (이것에 대한 해결 방법을 본 적이 ... 존재 ...)하지만 난 할 수 있어야 것처럼 보인다 단지 (가) 조금으로 기능을 존재와 함께 할 수의 결과를 캐스팅.
해결법
-
==============================
1.아니, 당신은 해결 방법을 사용해야합니다.
아니, 당신은 해결 방법을 사용해야합니다.
조건부 비트 0/1을 반환해야하는 경우 또 다른 방법이다 :
SELECT CAST( CASE WHEN EXISTS(SELECT * FROM theTable where theColumn like 'theValue%') THEN 1 ELSE 0 END AS BIT)
또는 캐스트없이 :
SELECT CASE WHEN EXISTS( SELECT 1 FROM theTable WHERE theColumn LIKE 'theValue%' ) THEN 1 ELSE 0 END
-
==============================
2.
SELECT CAST(COUNT(*) AS bit) FROM MyTable WHERE theColumn like 'theValue%'
당신은 비트 캐스팅 할 때
비트는 정말 아닌 경우에도, .NET 데이터 유형에 논리 값으로 직접 매핑 ...
이것은 비슷하지만 동일하지 그래서, 아니 일치하는 경우에는 행 (안 제로)를 제공하지 않습니다
SELECT TOP 1 CAST(NumberKeyCOlumn AS bit) FROM MyTable WHERE theColumn like 'theValue%'
-
==============================
3.나는이에 대한 이해에 늦게 비트 해요; 다만 포스트를 우연히 발견했다. 그러나 여기에서 선택한 답변보다 더 효율적이고 깔끔한이지만, 동일한 기능을 제공해야하는 솔루션이다 :
나는이에 대한 이해에 늦게 비트 해요; 다만 포스트를 우연히 발견했다. 그러나 여기에서 선택한 답변보다 더 효율적이고 깔끔한이지만, 동일한 기능을 제공해야하는 솔루션이다 :
declare @t table (name nvarchar(16)) declare @b bit insert @t select N'Simon Byorg' union select N'Roe Bott' select @b = isnull((select top 1 1 from @t where name = N'Simon Byorg'),0) select @b whenTrue select @b = isnull((select top 1 1 from @t where name = N'Anne Droid'),0) select @b whenFalse
-
==============================
4.당신은 IIF 및 CAST를 사용할 수 있습니다
당신은 IIF 및 CAST를 사용할 수 있습니다
SELECT CAST(IIF(EXISTS(SELECT * FROM theTable where theColumn like 'theValue%'), 1, 0) AS BIT)
-
==============================
5.또한 다음을 수행 할 수 있습니다 :
또한 다음을 수행 할 수 있습니다 :
SELECT DISTINCT 1 FROM theTable WHERE theColumn LIKE 'theValue%'
오히려 비트 0하지만 이상이 널 (NO 레코드) 반환 'theValue'로 시작하는 모든 값이없는 경우
-
==============================
6.아니, 할 수 없습니다. 비트 데이터 유형은 부울 데이터 타입이다. 그것은 0, 1, 또는 NULL이 될 수있는 정수 데이터 유형입니다.
아니, 할 수 없습니다. 비트 데이터 유형은 부울 데이터 타입이다. 그것은 0, 1, 또는 NULL이 될 수있는 정수 데이터 유형입니다.
-
==============================
7.
SELECT IIF(EXISTS(SELECT * FROM theTable WHERE theColumn LIKE 'theValue%'), 1, 0)
-
==============================
8.또 다른 해결책은 SELECT TOP 1 1 나란히 ISNULL을 사용하는 것입니다 :
또 다른 해결책은 SELECT TOP 1 1 나란히 ISNULL을 사용하는 것입니다 :
SELECT ISNULL((SELECT TOP 1 1 FROM theTable where theColumn like 'theValue%'), 0)
-
==============================
9.나는 (where 절로서 존재 또는 하위 쿼리) 당신이 해결해야 할 것이다, 그래서에만, where 절에서 사용할 수있는 존재 믿습니다. 내가 해결 등의 경우 그 수를 알 수 없습니다.
나는 (where 절로서 존재 또는 하위 쿼리) 당신이 해결해야 할 것이다, 그래서에만, where 절에서 사용할 수있는 존재 믿습니다. 내가 해결 등의 경우 그 수를 알 수 없습니다.
이것에 대해 무엇 :
create table table1 (col1 int null) go select 'no items',CONVERT(bit, (select COUNT(*) from table1) ) -- returns 'no items', 0 go insert into table1 (col1) values (1) go select '1 item',CONVERT(bit, (select COUNT(*) from table1) ) --returns '1 item', 1 go insert into table1 (col1) values (2) go select '2 items',CONVERT(bit, (select COUNT(*) from table1) ) --returns '2 items', 1 go insert into table1 (col1) values (3) go drop table table1 go
from https://stackoverflow.com/questions/2759756/is-it-possible-to-select-exists-directly-as-a-bit by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 고유 제약 조건이 자동으로 필드 (들)에 인덱스를 만들 수 있습니까? (0) | 2020.06.01 |
---|---|
[SQL] DISTINCT 사용하고 MySQL의 쿼리에 함께 COUNT (0) | 2020.06.01 |
[SQL] 외래 키에 의해 링크 된 데이터 삽입 속으로 테이블 (0) | 2020.06.01 |
[SQL] 소프트 삭제를 구현하는 가장 좋은 방법은 무엇입니까? (0) | 2020.06.01 |
[SQL] SQL Server 2005를 - 내보내기 테이블 프로그래밍 (를 재건하기 위해 .SQL 파일을 실행) (0) | 2020.06.01 |