• SQL 实战教程(八)


    http://www.studyofnet.com/news/247.html

    1.修改字段为自增

    alter table [dbo].[Logs] drop column ID

     alter table [dbo].[Logs] add Id int identity(1,1)

    2.添加默认字段

    alter table EA ADD EAInvoiceType int NOT NULL Default 1

    alter table EA ADD TaxMoney float NOT NULL Default 0

     ALTER TABLE [dbo].[ProductCategorys]  ADD IsEnable  int default 0

    通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数 增加字段: alter table [表名] add 字段名 smallint default 0 增加数字字段,整型,缺省值为0 alter table [表名] add 字段名 int default 0 增加数字字段,长整型,缺省值为0 alter table [表名] add 字段名 single default 0 增加数字字段,单精度型,缺省值为0 alter table [表名] add 字段名 double default 0 增加数字字段,双精度型,缺省值为0 alter table [表名] add 字段名 Tinyint default 0 增加数字字段,字节型,缺省值为0

    alter table [表名] add 字段名 text [null] 增加备注型字段,[null]可选参数 alter table [表名] add 字段名 memo [null] 增加备注型字段,[null]可选参数

    alter table [表名] add 字段名 varchar(N) [null] 增加变长文本型字段 大小 为N(1~255) alter table [表名] add 字段名 char [null] 增加定长文本型字段 大小固定为255

    alter table [表名] add 字段名 Datetime default 函数 增加日期型字段,其中 函数 可以是 now(),date()等,表示缺省值 (上面都是最常用的,还有其他的属性,可以参考下面的数据类型描述)

    删除字段: alter table [表名] drop 字段名

    修改变长文本型字段的大小:alter table [表名] alter 字段名 varchar(N)

    删除表: drop table [表名]

    创建表: sql="CREATE TABLE [表名] ([字段1,并设置为主键] int IDENTITY (1, 1) NOT NULL CONSTRAINT PrimaryKey PRIMARY KEY,"&_ "[字段2] varchar(50),"&_ "[字段3] single default 0,"&_ "[字段4] varchar(100) null,"&_ "[字段5] smallint default 0,"&_ "[字段6] int default 0,"&_ "[字段7] date default date(),"&_ "[字段8] int default 1)" conn.execute sql

    有null 的表示字段允许零长

    4.去重

    select da.OpenId,cf.Code,da.orgNo,da.OrgName,da.ReallyName,da.telephone,da.Email,da.Province,da.City,da.CreateTime from (
    select cu.Id,cr.OpenId,cu.orgNo,cu.OrgName,cu.ReallyName,cu.telephone,cu.Email,cu.Province,cu.City,cu.CreateTime from (
    select DISTINCT(cp.OpenId),max(cp.CreateTime) as CTime from [dbo].[CouponCodeInfoes] co  left join [dbo].[CouponUsers] cp on co.[CouponUserId]=cp.Id
    where cp.CreateTime>'2016-09-30'  group by cp.OpenId ) cr left join [dbo].[CouponUsers] cu on cr.CTime=cu.CreateTime and cr.OpenId=cu.OpenId
    ) da left join [dbo].[CouponCodeInfoes]  cf on da.Id=cf.[CouponUserId]

    去重2

    select  wx.OpenId, wx.[PrizeType],wx.Note,wx.payStatus,tr.orgNo,tr.OrgName,tr.ReallyName,tr.telephone,tr.Email,tr.Province,tr.City,wx.CreateTime from  [dbo].[WxUserPrizes] wx left  join
    (
    select cr.OpenId,cr.CuTime,cu.orgNo,cu.OrgName,cu.ReallyName,cu.telephone,cu.Email,cu.Province,cu.City,cu.CreateTime from (
    select OpenId,max(Createtime) as CuTime from [dbo].[CouponUsers] group by OpenId
    ) cr left join [dbo].[CouponUsers] cu on cr.OpenId=cu.OpenId and cr.CuTime=cu.CreateTime
    )  tr  on wx.OpenId=tr.OpenId where wx.[PrizeType]=2 order by wx.CreateTime

    一对多,左查询

     select Project.ProjectID,max(Invoice.CreateTime) as  InvoiceTime from Project ,Invoice
     where Project.ProjectID=Invoice.ProjectID group by Project.ProjectID

    5.Incorrect syntax near the keyword 'user'.

    SQL 查询特殊字字符串:

    UPDATE   [dbo].[APIKeys]  SET  [Key]='AC20C39A-7AEB-4354-A7A9-15D102043855' 

    6.GDI+中发生一般性错误的解决办法

    1. 相应的帐户没有写权限。
    解决方法:赋予 NETWORK SERVICE 帐户以写权限。
    2. 指定的物理路径不存在。
    解决方法:
    在调用 Save 方法之前,先判断目录是否存在,若不存在,则创建。
    if (!Directory.Exists(dirpath))
    Directory.CreateDirectory(dirpath);
    3. 保存的文件已存在并因某种原因被锁定

    删除指定列:

     alter table [dbo].[RequestUsers] drop column AgreeContent

    添加列


    alter table [dbo].[CreditDetails] add CreditTypeID  uniqueidentifier default '4F5E5643-4649-4D25-8B6A-F644A76B4291' not null

    4.分组处理


    select  JudgeUserId,sum(Distinct(StepGroupNum)) as count from [dbo].[RaceStepJudges] group by  JudgeUserId,StepGroupNum

    select JudgeUserId,count(JudgeUserId) as ct from (
    select  JudgeUserId,StepGroupNum as GPCount from [dbo].[RaceStepJudges]  where RaceStepConfigId='3AFF201F-A07A-4E83-BD21-408DC7FF9687' group by  JudgeUserId,StepGroupNum
    ) stInfo  group by  JudgeUserId

    5.select  导出字段分割

    select substring(id,1,3) +','+substring(id,4,3) as id from test

    SELECT Address, PARSENAME(REPLACE([Address],'-','.'),4) as 小区名,
    --如果字段的内容是 4单元-12幢-203 那么此时小区名字段的信息就是NULL
    PARSENAME(REPLACE([Address],'-','.'),3) as 单元号,
    PARSENAME(REPLACE([Address],'-','.'),2) as 楼房号,
    PARSENAME(REPLACE([Address],'-','.'),1) as 房间号
    FROM Person

    利用excel 间隔符号导出数据源

  • 相关阅读:
    进程与线程的区别与联系
    IPC 进程间通信
    sql中的group by 和 having 用法
    大端小端格式
    Spring AOP的一个比喻和IOC的作用
    volatile变量
    策略模式
    划分算法与快速排序
    希尔排序及希尔排序java代码
    红黑树
  • 原文地址:https://www.cnblogs.com/hanxingli/p/7347295.html
Copyright © 2020-2023  润新知