본문 바로가기

Programming/SQL, NoSQL11

[SQL] WHERE 절 조건에 IF/ELSE 조건 넣기 누군가 물어봤다. "WHERE 절에 IF/ELSE 조건을 넣으려면 어떻게 해?" 처음에는 T-SQL의 IF, ELSE를 말하는 줄 알았는데 어떤 조건이 TRUE 일 때는 조건 1을 적용하고, FALSE 일 때는 조건 2를 적용하고 싶다는 것이었다. SELECT * FROM #TEMP_TABLE WHERE ( Condition = TRUE -- IF AND ColumnA = 'A' -- 조건1 ) OR ( Condition = FALSE -- ELSE AND ColumnB = 'B' -- 조건2 ) 대충 표현하면 아래 조건이 적용된 결과가 조회된다. if (Condition == TRUE) { ColumnA == 'A' } else { ColumnB == 'B' } 기본적인 질문이었는데 몇 분간 뇌정지를 .. 2022. 11. 2.
[MS-SQL] Alter Constraint 있을 법하다고 생각했는데 ALTER CONSTRAINT는 없다. DROP CONSTRAINT 후 ADD CONSTRAINT으로 해결한다. ALTER TABLE MY_TABLE DROP CONSTRAINT CHK_Column1; ALTER TABLE MY_TABLE ADD CONSTRAINT CHK_Column1 CHECK (Column1 BETWEEN 1 AND 10); 2022. 7. 10.
[MS-SQL] SQL로 파일 이동/삭제하기(xp_cmdshell) 놀랍게도 SQL로 파일을 이동/삭제할 수 있는 방법이 있었다. xp_cmdshell 을 사용해서 윈도우 command를 활용하는 방법이다. 윈도우 CMD 명령어 모음 먼저 아래 쿼리를 실행해서 xp_cmdshell 사용을 설정해야 한다. EXEC sp_configure 'show advanced options', '1' RECONFIGURE EXEC sp_configure 'xp_cmdshell', '1' RECONFIGURE 그리고 아래와 같이 사용하면 된다. DECLARE @cmd sysname; -- 파일 삭제 SET @cmd = 'del "' + @RootDir + '\' + @FileName + '"'; EXECUTE sys.xp_cmdshell @cmd; -- 파일 이동하기(@RootDir1 .. 2022. 3. 6.
[MS-SQL] JSON Parsing하기 DB에 저장된 JSON string을 다루는 밥법에 대한 Documentation -- JSON_VALUE를 사용하면 원하는 value를 가져올 수 있다. SELECT JSON_VALUE('{"columns": [{ "name": "1" },{ "name": "2" }]}', '$.columns[1].name'); -- JSON_MODIFY로 수정을 할 수 있다. -- append를 사용하면 원하는 value를 추가할 수도 있다!🤗 SELECT JSON_MODIFY('{"columns": [{ "name": "1" },{ "name": "2" }]}', 'append $.columns', JSON_QUERY('{"name": "3" }')); 다음과 같이 결과를 확인할 수 있다. PostgreSQL 14.. 2021. 11. 11.
[MS-SQL] 대소문자 구별해서 치환하기 REPLACE() 사용 시 Case-sensitive 하게 Replace 하기 위해서 COLLATE SQL_Latin1_General_CP1_CS_AS 를 사용하면 된다. SELECT REPLACE('NULL and null' COLLATE SQL_Latin1_General_CP1_CS_AS, 'NULL', ''); NULL 과 null 중에 대문자 NULL 만 replace 된 것을 확인할 수 있다. 2021. 11. 6.
[MS-SQL] 모든 테이블 조회 MS SQL Server에서 모든 테이블을 조회하는 쿼리는 다음과 같다. SELECT SCHEMA_NAME(t.schema_id) AS 'Schema', t.name AS 'TableName', c.name AS 'ColumnName' FROM sys.columns c JOIN sys.tables t ON c.object_id = t.object_id WHERE c.name LIKE '%Early%' ORDER BY TableName, ColumnName; 2021. 9. 26.
[MS-SQL] DELETE, UPDATE 문에서 Alias 사용 간단한데 늘 헷갈리는 DELETE, UPDATE 문에서 Alias 사용하는 법 DELETE a FROM TableA a JOIN TableB b ON a.ID = b.ID UPDATE a SET a.COLUMN1 = b.COLUMN2 FROM TableA a JOIN TableB b ON a.ID = b.ID 처음에는 오라클과 달라서 몰랐지만, 지금은 자꾸 까먹어서 모르고… 결국 SQL 0개국어 2021. 9. 17.
[MS-SQL] Column명 변경하는법 은근히 헷갈리는 Column명 변경하는법. 매번 무의식 중에 쿼리를 짜다가 ALTER TABLE XXX ALTER COLUMN A …? 🤔 늘 여기서 잘못된 부분을 느끼고 검색을 하게 된다. -- Sales 스키마 SalesTerritory 테이블의 TerritoryID Column을 TerrID로 변경 EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN'; 참고 Rename Columns 2021. 7. 16.
[MS-SQL] 임시 테이블(#, ##) MS SQL Server에서 임시 테이블을 만들기 위해서는 #과 ##을 이용하면 된다. #을 붙이면 현재 세션에서만 사용 가능하다. ##을 붙이면 다른 connection에서도 사용 가능하다(global temporary table). SQL Server는 자동으로 임시 생성했던 테이블을 Connection이 close될 때 제거해준다. 하지만 개인적으로 DROP TABLE로 꼭 지워준다.😄 CREATE TABLE #TEMP ( Memo VARCHAR(MAX) ); CREATE TABLE #GLOBAL_TEMP ( Memo VARCHAR(MAX) ); 2021. 6. 24.