sourcecode

공백까지 데이터를 선택하시겠습니까?

codebag 2023. 9. 10. 12:13
반응형

공백까지 데이터를 선택하시겠습니까?

MSSQL 데이터베이스 필드는 아래 예제와 같습니다.

u129  james
u300  chris
u300a jim
u202  jane
u5    brian
u5z   brian2

첫 번째 문자 집합을 선택할 수 있는 방법이 있습니까?기본적으로 첫 번째 줄 공간까지 모든 캐릭터를 선택합니까?

저는 LEFT, RIGHT, LEN을 만지작거리려고 했지만, 제 예처럼 다양한 문자열 길이로 할 수 있는 방법을 찾지 못했습니다.

감사합니다!

다음을 조합하여 사용할 수 있습니다.LEFT그리고.CHARINDEX첫 번째 공간의 색인을 찾은 다음 왼쪽에 있는 모든 것을 잡습니다.

 SELECT LEFT(YourColumn, charindex(' ', YourColumn) - 1) 

열에 공백이 없는 경우:

SELECT LEFT(YourColumn, CASE WHEN charindex(' ', YourColumn) = 0 THEN 
    LEN(YourColumn) ELSE charindex(' ', YourColumn) - 1 END)
select left(col, charindex(' ', col) - 1)

첫 번째 열이 항상 같은 크기(공백 포함)인 경우, 다음을 통해 해당 문자를 가져올 수 있습니다.LEFT) 및 공간 정리(with)RTRIM):

SELECT RTRIM(LEFT(YourColumn, YourColumnSize))

또는 두 번째(또는 세 번째 등) 열을 추출할 수 있습니다.SUBSTRING):

SELECT RTRIM(SUBSTRING(YourColumn, PreviousColumnSizes, YourColumnSize))

이 접근 방식의 한 가지 이점(특히 다음과 같은 경우)YourColumn계산의 결과입니다)는YourColumn한 번만 지정됩니다.

공백이 없는 경우가 있는 경우 CASE 문을 사용하지 않을 수 있습니다.

select REVERSE(RIGHT(REVERSE(YourColumn), LEN(YourColumn) - CHARINDEX(' ', REVERSE(YourColumn))))

이것은 SQL Server에서 작동하며, 검색해보니 MySQL도 같은 기능을 가지고 있습니다.

공백이 없는 경우 하나를 추가할 수 있습니다.

SELECT LEFT('YourTextOrColumn',
            charindex(' ',
            'YourTextOrColumn' + ' ') - 1 ) 

언급URL : https://stackoverflow.com/questions/13481084/select-data-up-to-a-space

반응형