'Programming/SQL'에 해당되는 글 18건
NOTICE
[MySQL]null 값 치환
col_a col_b 1000 null 200 100 위와 같은 칼럼(둘 다 int)이 있다고 가정하자.SELECT COUNT(*) AS cnt FROM #table WHERE col_a > col_b이렇게 명령을 하였을 경우 결과는 1이 나온다. 물론 처음부터 해당 칼럼을 default는 0, not null을 하면 되겠지만 말이다.SELECT COUNT(*) AS cnt FROM #table WHERE COALESCE(col_a, 0) > COALESCE(col_b, 0)COALESCE(칼럼명, 해당 칼럼이 null일 경우 대체할 값)라는 함수를 사용하면 된다.
Server user 'USER ID' is not a valid user in database 'DATABASE NAME'. (Microsoft SQL Server, 오류: 916)
현재 사용 중인 환경(Microsoft SQL Server Management Studio / MS-SQL 2008)오류 메시지 : Server user 'xxxxx' is not a valid user in database 'XXXXX' (Microsoft SQL Server, 오류:916) Microsoft support : https://support.microsoft.com/ko-kr/kb/956214이 문제를 해결하려면 다음과 같이 하십시오.시작, 프로그램, Microsoft SQL Server 2008가리킨 및 다음 SQL Server Management Studio를 클릭합니다.서버에 연결 대화 상자의 서버 유형 목록에서 서버 이름 상자에 서버 이름을 입력하고 연결을 클릭한 다음 원하는 서버..
mysql view definer 수정
A 서버에서 디비를 그대로 백업해서 B 서버로 옮겨 왔다.하필이면 재수없게 view가 있다.definer가 A 서버에서 쓰던 계정(test@localhost)이 등록되어 있었다.그래서 지금 B 서버에서 testtest@localhost 계정으로는 view를 select 하려고 하면 권한이 없다고만 뜬다. view 정보를 보면 된다.봐야 할 게 view 이름이랑 view_definition, definer 총 세 가지다.view 이름은 뭐 알다시피 일반 테이블 이름이랑 같은 거고 view_definition이라고 하는 건 안에 쿼리가 들어 있다.그리고 definer는 이 view를 사용할 수 있는 유저라 해야 하나? [사용 방법] ALTER DEFINER = '계정'@'localhost' VIEW 뷰 이름..
[MySQL]ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
콘솔에서 root로 접속하려고 할 때 아래와 같은 에러 메시지가 뜨는 경우가 있다. [root@nyaongnyaong ~] # mysql -uroot -p ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 이런 경우는 위 에러 메시지를 긁어서 네이버나 구글에서 검색해 보는 게 가장 빠르다. [root@nyaongnyaong ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4008 Server version: 5.0.95 Source distribution Copyright (c) 200..
'./DB/Table' is marked as crashed and should be repaired
'./DB명/Table명' is marked as crashed and should be repaired 위와 같은 오류가 나고 웹 페이지 접속이 안 되는 경우가 있다. 이런 경우는 테이블이 미쳐서 그런 것이니 혼을 내야 한다. 먼저 콘솔로 접속을 한다. [어쩌고저쩌고@호호호]$ mysql -u아이디 -p패스워드 디비명 주의할 점은 무얼 하든 디비를 건드려야 한다면(select 빼고) 일단 백업을 먼저 하자. mysql> analyze table 테이블명; 그런 후에 어떻게 나오나 보자. 업체 디비라서 자체 필터링;; [어쩌고저쩌고@호호호]$ repair table 테이블명; 위처럼 명령어를 입력한다. 우와 OK가 보인다. 이러면 정상적으로 수리(?)가 된 것이다. 문제는 이렇게 해도 안 되는 경우가 있..
칼럼 하나에 여러 가지 값이 있을 때 쪼갠 값을 기준으로 정렬
제목 개 같네. Col이라고 하는 칼럼에 아래와 같은 데이터가 있다. 이름|영문|주민번호|주소|우편번호 위의 경우는 예를 든 것이니 욕하지 말자. 칼럼 하나에 하나의 데이터가 들어가야 한다는 건 아니까. 가끔씩 보면 저런 식의 쑤셔 박기 데이터가 있다. 물론 나도 개뿔, 쥐뿔 할 줄 모를 땐 저렇게 했다(아직도;; 쿨럭). 이제 저 칼럼 하나에서 |(pipe line) 이걸 기준으로 자른 후 자른 것에서 세 번째 값인 주민번호를 기준으로 정렬하자. SELECT REPLACE(SUBSTRING_INDEX(Col, '|', 4), CONCAT(SUBSTRING_INDEX(Col, '|', 3), '|'), '') AS ord FROM Table ORDER BY ord DESC 방법이야 여러 가지일 테니 태클..
MSSQL에서 MySQL의 desc tableName과 같은 것
sp_columns tableName