열 10 자리 값이 Column A = 11111000
과 같이 나타나면 sql에서이 값을 (List,Add,Edit,Delete,Export
)처럼 표시하는 방법.SQL에서 필요에 따라 열 값 표시
첫 번째 위치에 1이 있으면 조건이 표시됩니다. 두 번째 위치에 1이 표시되면 추가, 세 번째 위치에는 1, 두 번째 위치에는 편집, 네 번째 위치에는 1, 다음에는 삭제, 다섯 번째 위치에는 1이 있습니다. 값이 문자열 인 경우
열 10 자리 값이 Column A = 11111000
과 같이 나타나면 sql에서이 값을 (List,Add,Edit,Delete,Export
)처럼 표시하는 방법.SQL에서 필요에 따라 열 값 표시
첫 번째 위치에 1이 있으면 조건이 표시됩니다. 두 번째 위치에 1이 표시되면 추가, 세 번째 위치에는 1, 두 번째 위치에는 편집, 네 번째 위치에는 1, 다음에는 삭제, 다섯 번째 위치에는 1이 있습니다. 값이 문자열 인 경우
을 수행 할 수 있습니다 :
select stuff(((case when substring(a, 1, 1) = 1 then ',List' else '' end) +
(case when substring(a, 2, 1) = 1 then ',Add' else '' end) +
. . .
), 1, 1, '')
을 논리가 비트 연산자에 대한 유사합니다
select stuff(((case when a & 2^9 then ',List' else '' end) +
(case when 2 & 2^8 then ',Add' else '' end) +
. . .
), 1, 1, '')
어쩌면 하위 문자열 함수는이 값을 식별하는 데 도움이 될 수
select
id, ColumnA,
case when substring(ColumnA,1,1) = '1' then 'X' end as List,
case when substring(ColumnA,2,1) = '1' then 'X' end as [Add],
case when substring(ColumnA,3,1) = '1' then 'X' end as Edit,
case when substring(ColumnA,4,1) = '1' then 'X' end as [Delete],
case when substring(ColumnA,5,1) = '1' then 'X' end as [Export]
from Table1
,
은 어떻게 당신이하는 비트 마스크입니다
select
id, ColumnA,
stuff(
case when substring(ColumnA,1,1) = '1' then ',List' else '' end +
case when substring(ColumnA,2,1) = '1' then ',Add' else '' end +
case when substring(ColumnA,3,1) = '1' then ',Edit' else '' end +
case when substring(ColumnA,4,1) = '1' then ',Delete' else '' end +
case when substring(ColumnA,5,1) = '1' then ',Export' else '' end
,1,1,''
)
from Table1
실제로 원하는 출력 (목록, 추가, 편집, 삭제, 내보내기) –
안녕하세요 @PAL, 두 번째 쿼리를 추가했습니다. 확인하십시오. – Eralper
덕분에 @ Eralper, 잘 작동합니다. –
언급을 따라 쿼리를 업데이트하고 당신이 그것을 분석 할 필요가있다. 여러 가지 방법으로 [this post] (https://stackoverflow.com/q/16403872/1324345)를 사용해보십시오. – alroc
열의 유형은 무엇입니까? 정수 또는 문자열? –
열 A는 Sql_variant 유형 –