zoukankan      html  css  js  c++  java
  • 高级SQL语句

    变量:

    对于变量,无论是赋值还是引用,都必须在变量名前面加一个“@"符号。

    变量的声明:declare @var_name data_type

    变量的赋值:set declare @var_name=value

          select @var_name=col from table,注意这里的col必须是table表中返回的一个单值。

    函数的创建:

    标量函数:函数返回一个值,其创建过程大致为:

    create function func_name(@para1 data_type, ...) returns data_type
    as
    begin
    ...
    return @ret_value
    end

    表值函数:函数返回一个元组,其创建过程大致为:

    create function func_name(@para1 data_type, ...) returns table
    as
    return
    (
    ...
    )

    可以在returns table部分定义返回表的列名以及变量类型。

    一些常见的函数:

    SQL语句中有使用频率比较高的函数,这里我稍微整理了下

    convert函数,用于进行变量类型转换,使用规则为:convert(data_type, @var_name),将变量@var_name的类型转换成data_type类型

    cast函数,也是用于进行变量转换的,使用规则为:cast(@var_name as data_type),将变量@var_name的类型转换成data_type类型

    print函数,用于打印一个变量的值,使用规则为:print @var_name

    如果avg的参数是整数,但是要求返回值是小数的话,需要先将这个整数型的参数转换成小数再参与avg运算。

    if语句:

    if(condition)
    begin
    ...
    end
    else
    begin
    ...
    end

    常规的循环语句:

    while condition
    begin
    ...
    end

    游标循环遍历:

    declare @var_name data_type                          --声明一个变量用于存储游标中的值
    declare c cursor for select col from table           --声明一个游标,来存储表的一列数据
    open c                                               --打开游标
    fetch next from c into @var_name                     --将游标中的值放入var_name变量中以进行操作
    while @@FETCH_STATUS = 0                             --@@FETCH_STATUS是一个全局变量,用于判断游标中的值是否遍历完毕
    begin
    ...
    fetch next from c into @var_name                     --这一步相当于常规循环中的步长语句
    end
    close c                                              --关闭游标
    deallocate c                                         --释放游标占的内存

     创建用户定义聚合:

    参考链接:创建用户定义聚合

    以及调用CLR时需要注意的几个问题:

  • 相关阅读:
    Python-炫酷二维码
    Dictionary 序列化与反序列化
    获取数据库所有表名与字段名
    LinQ To Object 基本用法
    使用jq操作脚本生成元素的事件
    表单验证如何让select设置为必选
    js实现复制功能兼容ios
    微信小程序使用函数防抖解决重复点击消耗性能问题
    electronr进行签名与公证
    使用electron在mac升级签名后进行升级出现“QRLUpdaterErrorDomain”的错误
  • 原文地址:https://www.cnblogs.com/TheFutureIsNow/p/10807622.html
Copyright © 2011-2022 走看看