• 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

    九:2个数据库名表关联

    SELECT user_id, actual_discount_amount, source , a.mobile , b.create_time FROM   auth_user.t_passenger_mobile_credential as a LEFT JOIN t_coupon AS b ON a.uid = b.user_id
    WHERE a.mobile = 13871003025  ORDER BY b.create_time DESC

    十、

    select a.user_name , b.user_id , b.role_id, c.source ,a.*from t_user as a LEFT JOIN t_user_role as b on a.id = b.user_id LEFT JOIN t_role as c on b.role_id = c.id
    where a.user_name = 'vame'



                                
                               

  • 相关阅读:
    一些关于"虚拟交易"的有趣文章
    Windows中的消息队列:Message Queuing (MSMQ)
    ATLStyle模板 不用虚函数实现多态
    AIX 下获取系统CPU及内存的使用情况方法
    关于HPUNIX C 兼容性
    Android进阶Acticivity的启动模式
    ViewState & UpdatePanle & ReadOnly属性
    由网站构架演变说起
    '操作必须使用一个可更新的查询'解决方法
    ScriptManager & ClientScriptManager
  • 原文地址:https://www.cnblogs.com/Shanghai-vame/p/7911826.html
Copyright © 2020-2023  润新知