반응형 Error & Fix172 MSSQL ISNUMERIC으로 숫자 문자 판별방법 및 예제 MSSQL에서 ISNUMERIC을 사용해 특정 값이 숫자인지 문자인지 판별할 수 있는데 사용방법은 ISNUMERIC(값) = 0 - 값이 문자인지 확인 ISNUMERIC(값) = 1 - 값이 숫자인지 확인 ISNUMERIC은 단독으로 사용할 수 없기에 IIF, CASE WHEN과 같은 조건이 필요한 곳에 사용하게 된다 위 예제를 보면 IIF 안에서 ISNUMERIC(값) = 0 의 경우 문자일 경우 TRUE, 아닐 경우 FALSE ISNUMERIC(값) = 1 의 경우 숫자일 경우 TRUE, 아닐 경우 FALSE가 떨어져 NOT_NUMERIC, NUMERIC으로 출력이 되는 것이 보인다 예제에 사용한 코드는 아래와 같다 SELECT IIF(ISNUMERIC('') = 0, 'NOT_NUMERIC', 'N.. 2020. 4. 9. MSSQL REPLACE를 이용한 문자열 변환방법 및 예제 MSSQL에서 REPLACE 함수를 사용해서 문자열을 변경할 수 있는데 사용방법은 REPLACE(값, '원래 값', '바꿀 값') 으로 사용하게 된다 위 예제를 보면 REPLACE('2018-01-01', '-', '')는 -를 모두 공백으로 만든 뒤 반환하겠다는 내용인데 쿼리를 수행한 결과를 보면 REPLACE를 수행한 후 -가 모두 빠진 것이 보인다 마지막으로 예제에 사용한 코드는 아래와 같다 SELECT '2018-01-01' REPLACE_BEFORE, REPLACE('2018-01-01', '-', '') AS REPLACE_AFTER 2020. 4. 8. MSSQL IIF 사용법 및 예제 MSSQL에서 IIF는 조건을 주고 조건에 맞을 경우, 맞지 않을 경우의 값을 얻을 수 있는데 사용방법은 IIF(조건, 조건에 맞을 경우, 조건에 맞지 않을 경우) 이런 식으로 사용한다 위 예제를 보면 10과 20은 같지 않기 때문에 FALSE가 떨어지고 20과 20은 같기 때문에 TRUE가 떨어지는 것이 보인다 2020. 4. 7. MSSQL ISNULL로 NULL, NOT NULL 체크 및 사용방법 MSSQL에서 ISNULL을 사용해 NULL 체크를 할 수 있는데 사용방법은 ISNULL(값, NULL일시 값) 이렇게 사용해주면 되는데 기억해야 할 점은 MSSQL의 NULL은 오라클(ORACLE)의 NULL과 다르다 MSSQL은 ''은 NULL로 보지 않고 아무것도 넣지 않은 NULL일 상태일 때만 NULL로 보지만 오라클은 ''와 NULL을 모두 NULL로 보기 때문에 오라클과 같은 개념으로 IS NULL, IS NOT NULL을 사용하면 ''를 놓치게 되어버린다 따라서 오라클과 동일하게 NULL 체크를 해주려면 IS NULL의 경우 ISNULL(값, '') = '' IS NOT NULL의 경우 ISNULL(값, '') '' 이렇게 사용해주면 된다 예제에 사용한 코드는 아래와 같다 SELECT IS.. 2020. 4. 7. MSSQL LEN, DATALENGTH를 이용한 문자 길이 확인방법 MSSQL에서는 LEN, DATALENGTH를 이용해서 문자열의 길이를 확인할 수 있는데 LEN은 문자열이 실제 몇 글자인지 DATALENGTH는 문자열이 실제 몇 바이트인지를 가져온다 사용법은 LEN(값) DATALENGTH(값) 이렇게 사용한다 예제에 사용한 쿼리는 아래와 같다 SELECT LEN('AAAAA') AS LEN_EXAMPLE ,DATALENGTH('BYTELENGTH') AS DATALENGTH_EXAMPLE 2020. 4. 7. 오라클 ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 해결방법 오라클에서 SELECT 문을 수행하는 도중 ORA-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 에러가 뜨는 것이 보이는데 SELECT 시 한 행씩 뽑아내야 하는데 특정 부분에서 여러 행을 가져오기 때문에 한 행으로 뽑아내지 못해 에러가 났다는 얘기다 서브쿼리를 이용해 가져오던 TB1 테이블을 확인해보니 한 행을 끌고와야 하는데 4개의 행을 끌고와서 에러가 났던 것이 보인다 서브쿼리에 WHERE을 넣어 한 행만 가지고 오게 하니 에러 없이 잘 출력되는 것이 보인다 예제에 사용한 코드는 아래와 같다 SELECT (SELECT NAME FROM TB1 WHERE NAME = '이영희') AS TB_NAME , 'VAL' AS A FROM DUAL 2020. 4. 6. 이전 1 ··· 22 23 24 25 26 27 28 29 다음 반응형