본문 바로가기

sql

Mssql Query 모음 DB (MSSQL)

목록열기 DB (MSSQL) (55)
Mssql Query 모음 DB (MSSQL)

2007/11/22 15:06

복사 http://blog.naver.com/gckcs2/10024286218

1. 다음의 mysql에서 사용하던 쿼리를 을 mssql 문으로 변환.

   

     1) mysql : date_format(date_sub(curdate(), interval 1 month), '%Y%m%d')  

     2) mysql : date_format(curdate(), '%Y%m%d')  

 

     1) mssql : convert(char(8), dateadd(mm, -1, getdate()), 112)

     2) mssql : convert(char(8), getdate(), 112)

 

 

2. update 일경우 limit 을 top 로 변환하기.

   mysql : update assets10dayrate set membergroup=? where membergroup = 0 order by charge_rate desc limit 40

   mssql : update assets10dayrate set membergroup=1
              where membergroup =0
              and charge_rate in ( select top 40 charge_rate from assets10dayrate where membergroup=0 order by charge_rate desc)

 

3. Mssql 에서 페이징 처리하기 (* MSSQL 2005 부터 지원함)

   select * from ( 
                       select uid, member_id, member_name, site, phone_no, anal_nick, 
                                 convert(char(19), sdate, 120) as sdate, convert(char(19), edate, 120) as edate, 
                                 pay_money, pay_method, state, (select sms from member where id=PL.member_id and site=?) as sms, 
                                 ROW_NUMBER() OVER (ORDER BY uid DESC) AS RowNumber 
                       from payment_log AS PL         
    ) AS imsiTable 
    where imsiTable.RowNumber 
    between 
    1 and 2

 

 

4. 날짜 구하기 예제

   

    SET DATEFIRST 7 --일요일을 첫시작으로 설정(기본설정)

 -- 해당주의 첫째날
     SELECT DATEADD(dd, -(DATEPART(dw, '2007-01-10')-1), '2007-01-10')
     2007-01-07 00:00:00.000

 

 -- 해당주의 마지막날

    SELECT DATEADD(dd, (7-DATEPART(dw, '2007-01-10')), '2007-01-10')
    2007-01-13 00:00:00.000


 

   -- 해당월에 첫째날

       select convert(varchar(8),dateadd(day, -(day(getdate())-1), getdate()),112)

       20080101
       select dateadd(day,-(day('2000-02-04')-1),'2000-02-04')

       2000-02-01 00:00:00.000

   -- 해당월에 마지막날
       select dateadd(month,1,'2000-02-04')-(day('2000-02-04'))

       2000-02-29 00:00:00.000

--해당월에 13개월전 첫날
   select dateadd(month,-12,'2000-02-04')-(day('2000-02-04')-1)
 

   1999-02-01 00:00:00.000

 

 

5. Case 문 예제

  

    SELECT au_fname, au_lname,
          CASE state
                WHEN 'CA' THEN 'California'
                WHEN 'KS' THEN 'Kansas'
                WHEN 'TN' THEN 'Tennessee'
                WHEN 'OR' THEN 'Oregon'
                WHEN 'MI' THEN 'Michigan'
                WHEN 'IN' THEN 'Indiana'
                WHEN 'MD' THEN 'Maryland'
                WHEN 'UT' THEN 'Utah'
          END AS StateName
   FROM pubs.dbo.authors
   ORDER BY au_lname

이 포스트를..

덧글 1개 엮인글 쓰기

확인 취소
닫기

'sql' 카테고리의 다른 글

글자수 길이 체크  (0) 2011.08.30
mysql DB에서 한글 깨질때  (0) 2011.07.12
MsSql 날짜 함수  (0) 2010.07.15
MSSQL 에서 Getdate()함수로 얻은 포맷 자유로이 변환하기  (0) 2010.07.15
쿼리문 where in  (0) 2010.06.10