mssql 문법 정리

sangeun jo·2021년 11월 11일
0

서버 네임 확인

select @@servername

만약 서버네임에 햐이픈 등이 들어가 있다면 ""로 감싸 주어야 한다.

"server-name".dbname.dbo.tablename

트랜잭션

go .. go
go시작부터 다음 go를 만날때 까지 하나의 트랜잭션으로 만들어준다.

꼭 쌍으로(짝수로) 있을 필요는 없다 . 예를들어 2개의 sql문에 4개의 go가 필요하지 않고 3개만 있어도 충분하다.

go
query1
go
query2
go

새로운 테이블을 만들어 기존 테이블의 데이터를 복사

select col1, col2 into testdb_copy from testdb

testdb의 col1, col2 칼럼의 데이터를 가져와서 testdb_copy 테이블에 복사하는 명령어이다. 실제로 db에 col1, col2 컬럼으로 구성된 testdb_copy 테이블이 생성된다.

공백, null 데이터 제외

mssql은 공백('')과 null을 따로 취급한다. 따라서 공백데이터를 제외하고 싶으면 다음과 같이 조건을 주어야한다.

where col != '' and col is not null

중복데이터 제외

select distict col1, col2 from testdb

영어, 숫자 섞여 있는 컬럼 정렬

col1, col2 컬럼을 test 테이블로부터 가져올 때, 숫자 데이터와 영어 데이터가 섞여 있는 col1을 영어 순으로 다 정렬한 다음 숫자 순으로 정렬하고 싶을 때 (A, B, C, CD...ZZZ, 1, 2, 3...이런 식으로 정렬하고 싶을 때)

select col1, col2, 
case when ascii(substring(col1, 1, 1)) >=65 and ascii(substring(col1, 1, 1)) <= 119 then 1 "  //정렬 순서 1, 영어
when ascii(substring(col1, 1, 1)) < 58 then 2 end as sorting_order "  //정렬 순서 2, 숫자
from test
order by sorting_order, col1"
profile
코더가 아니라 개발자가 되자

0개의 댓글