SQL常用語法大全


一、 Table 增加列

1.增加列:
alter table tableName add columnName varchar(30)  

1.2. 修改列類型:
alter table tableName alter column columnName varchar(4000) 

1.3  修改列的名稱:
EXEC  sp_rename   'tableName.column1' , 'column2'  (把表名為tableName的column1列名修改為column2)

1.4  刪除列名

ALTER TABLE At_StaffDailyRangeDetail  DROP COLUMN column_name

 

1.5 根據字段名查詢表名

     SELECT  b.name  as  TableName,a.name  as  columnname  
   From  syscolumns    a  INNER  JOIN    sysobjects  b    
   ON  a.id=b.id    
   AND  b.type='U'    
   AND  a.name='Roles字段名'


二、庫轉庫:

----insert into 庫名1.dbo.表名 (字段) select (字段)   庫名2.dbo.表名

三、case when :


3.1  select (case Gender when 1 then '男' when 2 then '女' else '其他' end) as Gender from Table1

3.2    SELECT  lft.FSName_Chinese, lft.fSNO,
        (CASE  lft.FSNO  WHEN  0 THEN '全天'  WHEN  1 THEN '上半天' WHEN  2  THEN  '下半天' ELSE '其它'  end)  as 休假類型 FROM   leave_fitshift lft 

四、修改數據庫字段空格

UPDATE hr_Staff SET StaffName = RTRIM(LTRIM(StaffName))

五、Excel拼接函數。

5.1   =CONCATENATE("update org_dictionary set Name_Language2='",C555,"' where Name_Chinese ='",B555,"'")
5.2   =CONCATENATE("UPDATE  lb  SET  lb.NextYearAdjust='",C555,"' FROM  Leave_Balance  AS lb  LEFT JOIN   Leave_Code AS lc ON lc.id=lb.LeaveCode_id  WHERE  lc.LeaveBenefitCode='AL' and  lb.StaffNo='",B555,"'")

5.3   = " update pay_Formula_Cur set Description_English = ' "&C2&" ' where Payroll_Code = ' "&B2&" ' "

六、 查詢某列數據重復
    --SELECT 某一列, COUNT( 某一列 ) FROM 表 GROUP BY 某一列 HAVING COUNT( 某一列 ) 〉1
  SELECT  staff_no,COUNT(staff_no) FROM Pay_Result_Cur  GROUP BY   staff_no   HAVING   COUNT(staff_no)>1

 

七:聯表update

   
UPDATE   lb SET  lb.CurYearBalance  = 5  from  Leave_Balance lb 

left join  Leave_Code  lc  ON  lc.Id = lb.LeaveCode_id  
WHERE  lb.StaffNo ='0092'  AND  lc.LeaveBenefitCode ='NAL'

 

八: 聯表Delete


     DELETE ap  FROM At_PunchClockInfo ap INNER JOIN At_Card ac ON ap.At_Card_id = ac.Id WHERE ac.StaffNo ='407725'

 

七: 觸發器:


CREATE TRIGGER replace0000 ON det_message
    AFTER INSERT
AS
    BEGIN
        SET NOCOUNT ON;
update det_message set Body=replace(body,'0000','0') where status<>'1' and ErrorTimesNow<>20
        SET NOCOUNT OFF;
       
    END;
GO

 

八:聚合函數:

SELECT   SUM(ot.SwitchHours/36000000000) ,  Max(ot.staffno) FROM   Ot_Transaction AS ot   WHERE  ot.SwitchType='1'   AND  ot.staffno='A0165'GROUP BY  StaffNo

 



                            
                           

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: