[SQL] 연산자와 같은 SQL 숫자 만 얻을 수
SQL연산자와 같은 SQL 숫자 만 얻을 수
이것은 내가 간단한 문제가 아직 해결을 못하고 생각입니다. 나는 여기에 설명 된대로 만 열에서 유효 숫자를 좀하고 싶습니다.
우리는 다음과 같은 값으로 VARCHAR 컬럼이 있다고 가정하자
ABC
Italy
Apple
234.62
2:234:43:22
France
6435.23
2
Lions
여기에서 문제는 번호를 선택하는 것입니다
여기서 대답은 '% [0-9] %'처럼 TBL에서 *를 선택는하지만 수익을했을 것
234.62
2:234:43:22
6435.23
2
여기서, 물론, 2 : 234 : 43 :이 유효 숫자가 아니므로 (22)는 바람직하지 않다.
원하는 결과는
234.62
6435.23
2
이 작업을 수행 할 수있는 방법이 있나요?
해결법
-
==============================
1.이 시도 할 수 있습니다
이 시도 할 수 있습니다
ISNUMERIC (Transact-SQL)를 참조하십시오
DECLARE @Table TABLE( Col VARCHAR(50) ) INSERT INTO @Table SELECT 'ABC' INSERT INTO @Table SELECT 'Italy' INSERT INTO @Table SELECT 'Apple' INSERT INTO @Table SELECT '234.62' INSERT INTO @Table SELECT '2:234:43:22' INSERT INTO @Table SELECT 'France' INSERT INTO @Table SELECT '6435.23' INSERT INTO @Table SELECT '2' INSERT INTO @Table SELECT 'Lions' SELECT * FROM @Table WHERE ISNUMERIC(Col) = 1
-
==============================
2.유효한 문자를 포함하려면 다음을 사용할 수 있습니다 :
유효한 문자를 포함하려면 다음을 사용할 수 있습니다 :
SQL
SELECT * FROM @Table WHERE Col NOT LIKE '%[^0-9.]%'
결과
Col --------- 234.62 6435.23 2
-
==============================
3.이 같은 시도 - 당신이 언급 한 경우에 작동합니다.
이 같은 시도 - 당신이 언급 한 경우에 작동합니다.
select * from tbl where answer like '%[0-9]%' and answer not like '%[:]%' and answer not like '%[A-Z]%'
-
==============================
4.SQL 2012 및 이후 버전에서는 숫자 유형, 예를 들어,로 변환하려고 TRY_CAST / TRY_CONVERT을 사용할 수 있습니다 TRY_CAST (플로트 AS 대답은) NULL이 아닌 -이 너무 과학적 표기법과 일치하는 것이다 불구하고 주 (1 + E34). (당신은 소수를 사용하는 경우, 과학 표기법이 일치하지 않습니다)
SQL 2012 및 이후 버전에서는 숫자 유형, 예를 들어,로 변환하려고 TRY_CAST / TRY_CONVERT을 사용할 수 있습니다 TRY_CAST (플로트 AS 대답은) NULL이 아닌 -이 너무 과학적 표기법과 일치하는 것이다 불구하고 주 (1 + E34). (당신은 소수를 사용하는 경우, 과학 표기법이 일치하지 않습니다)
-
==============================
5.당신이 일반 SQL92에서 원하는 위치를 얻을 수 있습니다 무엇을 :
당신이 일반 SQL92에서 원하는 위치를 얻을 수 있습니다 무엇을 :
select * from tbl where lower(answer) = upper(answer)
또는, 경우에 당신은 또한 / 후행 공백을 선도하기위한 강력한되고 싶어 :
select * from tbl where lower(answer) = trim(upper(answer))
from https://stackoverflow.com/questions/2032742/sql-like-operator-to-get-the-numbers-only by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 DATETIME 컬럼에 1 년 추가하는 SQL UPDATE 문을 사용할 수 있습니까? (0) | 2020.07.05 |
---|---|
[SQL] SQL에서 전화 번호와 같은 숫자 열을 포맷하는 방법 (0) | 2020.07.04 |
[SQL] "열은 여기에 허용되지 않습니다"오류 INSERT 문에 (0) | 2020.07.04 |
[SQL] "외래 키"와 "제약 외래 키"의 차이 (0) | 2020.07.04 |
[SQL] 당신은 어떻게 JDBC에 ResultSet.getBinaryStream ()를 사용하여 모든 열에서 값을받을 수 있나요? (0) | 2020.07.04 |