[SQL] 어떻게 T-SQL을 사용하여 문자열에서 숫자 부분을 얻으려면?
SQL어떻게 T-SQL을 사용하여 문자열에서 숫자 부분을 얻으려면?
나는 다음과 같은 문자열을 가지고있다.
Input
--------------
2030031469-NAI
숫자 부분을 얻기 위해, 나는 다음과 같은 스크립트를 사용하고 있습니다
declare @str varchar(50)= '2030031469-NAI'
Select
@str
,SUBSTRING(@str, 1, NULLIF(CHARINDEX('-', @str) - 1, -1))
,Left(@str,PATINDEX('%-%',@str)-1)
다음과 같은 출력을 얻을 수 있습니다
Output:
----------
2030031469
같은 일을 다른 어떤 쉬운 / 우아한 방법이 있나요?
해결법
-
==============================
1.
select left(@str, patindex('%[^0-9]%', @str+'.') - 1)
-
==============================
2.경우에는 귀하의 문자열은 ERT-123 같은 번호를 가진 알파벳과 끝과 시작
경우에는 귀하의 문자열은 ERT-123 같은 번호를 가진 알파벳과 끝과 시작
이 쿼리를 사용할 수 있습니다 :
(select substring(@str,patindex('%[0-9]%', @str),len(@str)))
-
==============================
3.이 확인하시기 바랍니다, 내가 전화 번호를 추출 내 프로젝트에 사용
이 확인하시기 바랍니다, 내가 전화 번호를 추출 내 프로젝트에 사용
CREATE Function [dbo].[RemoveNonNumericCharacters](@Temp VarChar(1000)) Returns VarChar(1000) AS Begin While PatIndex('%[^0-9]%', @Temp) > 0 Set @Temp = Stuff(@Temp, PatIndex('%[^0-9]%', @Temp), 1, '') Return @TEmp End
-
==============================
4.포맷되지 않은 문자열에서 숫자를 추출하려면
포맷되지 않은 문자열에서 숫자를 추출하려면
DECLARE @Text NVARCHAR(100)= 'extract only 23124R integer @#%%' SELECT SUBSTRING(@Text, PATINDEX('%[0-9]%',@Text), PATINDEX('%[^0-9]%',SUBSTRING(@Text, PATINDEX('%[0-9]%',@Text), LEN(@Text)))-1) [ONLY_INT]
from https://stackoverflow.com/questions/10443462/how-to-get-the-numeric-part-from-a-string-using-t-sql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 는 SQL Server 통합 서비스를 사용하여 Oracle 데이터베이스에 연결 (0) | 2020.06.11 |
---|---|
[SQL] 나는 복합 기본 키 여부를 사용해야합니까? (0) | 2020.06.11 |
[SQL] 어떻게 SQL Server를 사용하여 소프트웨어 버전을 비교? (0) | 2020.06.11 |
[SQL] 최대 절전 모드 기준 API : GET n은 임의 행 (0) | 2020.06.11 |
[SQL] 저장 프로 시저에서 SQL 서버 변수 범위 (0) | 2020.06.11 |