전체 글
-
MSSQL STRING_AGGIT/SQL 2024. 5. 5. 09:59
MSSQL 에서 특정 컬럼의, 여러 로우의 값들을 , 한 컬럼으로 읽어들이는 함수입니다.STUFF + FOR XML PATH 의 대용이라고 생각하면 되는데, 사용하기 편하고 성능도 나은것 같습니다. STRING_AGG 구문STRING_AGG ( expression, separator ) [ ] ::= WITHIN GROUP ( ORDER BY [ ASC | DESC ] ) STRING_AGG 예제예제를 위한 데이터 생성CREATE TABLE SAMPLE1 (CLS_NM VARCHAR(10),NM_KR VARCHAR(10))INSERT INTO SAMPLE1 VALUES ( '병아리', '김은총')INSERT INTO SAMPLE1 VALUES ( '병아리', '이민준')INSERT INTO..
-
MSSQL REPLACE, TRANSLATE 문자 바꾸기IT/SQL 2024. 4. 25. 23:56
MSSQL 에서 문자 바꾸기는 기본적으로 REPLACE 가 있다. 만약 REPLACE 를 중첩해서 여러번 사용해야 한다면 TRANSLATE 를 사용하면 된다. ( 2017 버전부터 ) REPLACE 사용법구문 REPLACE ( string_expression , string_pattern , string_replacement ) 예제SELECT REPLACE('ABC', 'B', 'X') 결과만약 REPLACE 를 중첩해서 사용해야 한다면( 바꿀 문자가 여러 개 일 경우 ) TRANSLATE 를 사용하면 훨씬 편하다TRANSLATE 는 MSSQL 2017 버전부터 사용 가능하다. REPLACE MS 문서링크 TRANSLATE 사용법구문 TRANSLATE ( inputString, characters, t..
-
MSSQL DELETE 및 DELETE JOINIT/SQL 2024. 4. 22. 13:33
MSSQL DELETE 문과 FROM 및 JOIN 절을 사용한 DELETE 문을 살펴봅니다. 구문 -- Syntax for SQL Server and Azure SQL Database [ WITH [ ,...n ] ] DELETE [ TOP ( expression ) [ PERCENT ] ] [ FROM ] { { table_alias | | rowset_function_limited [ WITH ( table_hint_limited [ ...n ] ) ] } | @table_variable } [ ] [ FROM table_source [ ,...n ] ] [ WHERE { | { [ CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ]..
-
MSSQL TRIM 공백제거IT/SQL 2024. 4. 21. 23:30
MSSQL 에서 TRIM 은 2017 버전부터 사용가능합니다. 이전 버전에서는 LTRIM, RTRIM 을 사용합니다. 2022 버전부터는 특정 문자를 제거해주는 기능이 추가되었습니다. 공백제거 구문 TRIM ( [ characters FROM ] string ) 예제 그림처럼 TRIM 을 실행하면 앞뒤의 공백이 모두 제거됩니다. 길이를 측정해보면 3이 나왔습니다. 지정한 문자 제거 구문 TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string ) LEADING, TRAILING, BOTH 는 앞,뒤,양쪽 중 어디에서 시작해서 문자를 제거할 것인지를 지정하는 부분입니다. 지정한 문자는 여러 문자들을 지정할 수 있고, 특정 방향에서 시작해서 지정된 문자..
-
SSMS 쿼리 후에 한글로 자동변환 될 때IT/SQL 2024. 4. 17. 07:54
SSMS 에서 쿼리를 날리면, 한글로 입력모드가 자동으로 바뀌는 때가 있다. 이 때 해결방법은 SSMS 안에서 뭔가 새 창을 띄워서 영문으로 바꾸는건데, 새 쿼리 이런거 말고, 뭔가 UI 가 바뀌는 그런 창이 필요하다. 예를들면 테이블 디자이너, 새연결 이런 창들이 필요한데, 제일 간단한게 개체탐색기에서 연결버튼 눌러서 새연결창 열어서 하는 방법이다. 1. 개체탐색기( 안열려 있으면 F8 ) 2. 연결 > 데이터베이스 엔진 3. 로그인 아이디 넣는 자리에 커서를 넣고, 글자를 입력해본다. 한글이 입력되면, 영문으로 바꿔서 한두글자 입력해보고 창을 닫는다. 여기까지 하면 해결됨
-
MSSQL 임시테이블 존재여부 체크 해서 생성하기IT/SQL 2024. 4. 12. 16:37
1. MSSQL 에서 임시테이블을 생성하는 방법 보통 얘기하는 임시테이블은 해당 세션이 살아있을 때만 유효하고, 다른 세션에서는 접근할 수 없는, WITH 절을 사용하는 것과 비슷한 효과의 # 한 개짜리 임시테이블입니다. # 두개짜리는 전역 임시테이블입니다. ( 다른 세션에서 접근할 수 있는 ) 코드 -- 존재여부 확인 IF OBJECT_ID('TEMPDB..#ASDF') IS NOT NULL DROP TABLE #ASDF -- 생성 CREATE TABLE #ASDF ( C1 INT , C2 INT , C3 VARCHAR(100) ) 세션이 없어지면 #테이블은 없어진다고 합니다. 실제 테스트해보면 tempdb 에서 없어지기는 해요. 근데, 경우에 따라서 없어지지 않는 경우도 있다는 얘기가 많고, 실무에서..
-
MSSQL Update 문 사용법. Join 포함IT/SQL 2024. 4. 10. 10:05
기본 update 문법 우선 아래와 같은 테이블이 있습니다. colA = 2 인 로우의 colB 를 200 으로 업데이트 합니다. UPDATE tblA SET colB = 200 WHERE colA = 2 내용은 간단합니다. JOIN 을 포함한 UPDATE 방법 tblB 의 colBB 값을 이용해서 로우를 찾아서 tblA 의 colB 를 업데이트 합니다. UPDATE A SET colB = B.colBB FROM tblA A JOIN tblB B ON A.colA = B.colBA WHERE B.colBB = 300 UPDATE A : from 절에서 alias 를 사용했다면 update 절에 alias 를 사용할 수 있습니다. 테이블 이름을 직접 써줘도 됩니다. A 가 아닌 B 가 들어가도 됩니다. 다..