본문 바로가기

Database6

쿼리로 랜덤한 문자열 생성 - MySQL UUID() - MSSQL NEWID() 이렇게 생성된 GUID는 128비트의 크기를 가지고 있기에 가능한 GUID의 조합은 2^128개이다. 2023. 4. 19.
중복행 지우는 쿼리 무언가 무언가의 일로 특정 컬럼이 같은 데이터를 지우고 싶을 때 (예를 들면 생성일 이라던가) 물론 그럴 일이 없게 하는 것이 가장 좋겠지만 😊 DELETE FROM 테이블명 WHERE 컬럼 IN (SELECT create_dt FROM 테이블명 // 컬럼은 중복값이 들어있는 컬럼명 GROUP BY 컬럼 HAVING COUNT(컬럼) > 1) AND PK컬럼 NOT IN (SELECT MIN(PK컬럼) FROM 테이블명 GROUP BY 컬럼 HAVING COUNT(컬럼) > 1); 2023. 1. 25.
unique와 nonclustered index unique를 설정하면 자동으로 nonclustered index가 걸린다. 그러나 nonclustered index를 설정한다고 unique는 아니다. // 논클러스터 인덱스가 자동으로 걸림 [COLUMN_NAME] [varchar](40) NOT NULL UNIQUE // 유니크 안걸림 (당연하겠지만) [COLUMN_NAME] [varchar](40) NOT NULL INDEX IX_XX NONCLUSTERED pk는 당연히 unique와 index 모두 걸린다 (단 pk의 index는 clustered) 2022. 12. 13.
SQL SELECT문에서 @변수에 inline으로 값 할당하기 DECLARE @variable SELECT TOP 1 @variable=[컬럼명] FROM [테이블명] WHERE [조건] ORDER BY [컬럼명] DESC 2022. 11. 11.
CASE문으로 SQL 동적으로 업데이트 하기 a, b, c, d라는 컬럼이 있고, 업데이트 시 새로운 @a, @b, @c, @d 값이 존재할 때만 각각의 컬럼들을 업데이트하고 싶을 때 간단하게 쿼리를 짤 수 있다. UPDATE [테이블명] SET a = CASE WHEN @a IS NOT NULL THEN @a ELSE a END, b = CASE WHEN @b IS NOT NULL THEN @b ELSE b END, c = CASE WHEN @c IS NOT NULL THEN @c ELSE c END, d = CASE WHEN @d IS NOT NULL THEN @d ELSE d END, 빈스트링도 허용하지 않겠다하면 UPDATE [테이블명] SET a = CASE WHEN @a IS NOT NULL OR @a = '' THEN @a ELSE a.. 2022. 11. 10.