문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
mssqlserver:basic [2018/10/30 17:01] kwon37xi [UPSERT] |
mssqlserver:basic [2020/08/24 17:16] kwon37xi [String to DATETIME] |
||
---|---|---|---|
줄 80: | 줄 80: | ||
-- TEST 가 UPDATE/ | -- TEST 가 UPDATE/ | ||
MERGE dbo.TEST AS T | MERGE dbo.TEST AS T | ||
+ | USING (SELECT 3, 300) AS S (userSN, col1) -- update or insert 할 데이터 테이블. SELECT로 가상 테이블 만듬 | ||
+ | ON T.userSN = S.userSN | ||
+ | WHEN MATCHED THEN | ||
+ | | ||
+ | WHEN NOT MATCHED BY TARGET THEN | ||
+ | | ||
+ | </ | ||
- | USING (SELECT | + | ===== Offset/ |
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * '' | ||
+ | <code sql> | ||
+ | SELECT | ||
+ | FROM Sales.SalesOrderDetail | ||
+ | ORDER BY SalesOrderDetailID | ||
+ | OFFSET 20 ROWS | ||
+ | FETCH NEXT 10 ROWS ONLY; | ||
+ | GO | ||
+ | </ | ||
- | ON T.userSN | + | ===== DATE, TIME 컬럼 합쳐서 DATETIME 만들기 ===== |
+ | * '' | ||
- | WHEN MATCHED THEN | + | <code sql> |
+ | -- modifyDate : DATE, modifyTime : TIME 컬럼일 경우 | ||
+ | CAST(modifyDate as DATETIME) + CAST(modifyTime as DATETIME) modifiedAt | ||
+ | </ | ||
- | | + | ===== 공백제거 ===== |
+ | * [[https:// | ||
+ | * '' | ||
+ | <code sql> | ||
+ | SELECT REPLACE(REPLACE(@str, | ||
+ | </ | ||
- | WHEN NOT MATCHED BY TARGET THEN | + | ===== FORMAT ===== |
+ | * [[https:// | ||
+ | * 시간 포맷시 '' | ||
+ | * 시간을 나타내는 포맷 문자열은 '' | ||
+ | <code sql> | ||
+ | SELECT FORMAT(cast(' | ||
+ | SELECT FORMAT(cast(' | ||
+ | </ | ||
- | | + | ===== String to DATETIME ===== |
+ | * 정형화 돼 있는 날짜형식 문자열을 DATETIME 타입으로 변경하는 것은 '' | ||
+ | * [[https:// | ||
+ | * 그렇지 못한 custom type 은 문자열을 모두 쪼개서 [[https:// | ||
+ | * [[https:// | ||
+ | <code sh> | ||
+ | -- 2019-09-20 18:51:47 | ||
+ | DECLARE @d NVARCHAR(14)=' | ||
+ | |||
+ | SELECT DATETIMEFROMPARTS (LEFT(@d, 4), SUBSTRING(@d, 5,2), SUBSTRING(@d, | ||
+ | DATETIMEFROMPARTS (LEFT(' | ||
+ | DATETIME2FROMPARTS (LEFT(' | ||
+ | ; | ||
</ | </ | ||
+ |