• SQL Server几个好用的小知识


    一、引言

    SQL Server有一些很好用的功能,只不过由于个人原因没用过或者不记得怎么用,导致需要花点时间用其它方式来实现。

    二、好用小知识

    2.1、FORMAT函数

    1)时间格式化,如将当前日期格式化为2022-05-12:

    SELECT FORMAT(GETDATE(),'yyyy-MM-dd')

    不用FORMAT函数的话,我经常是这样转换:

    SELECT CONVERT(VARCHAR(10),GETDATE(),120)

    2)数字前补0,这个在单号流水码中比较常用,如保留3位流水码:

    SELECT FORMAT(12,'000')

    不用FORMAT函数的话,我经常是这样转换:

    SELECT REPLICATE('0',3-LEN(12))+'12'

    2.2、CONCAT函数

    1)字符串连接,有NULL值不需要转换:

    DECLARE @A VARCHAR(10)='A',@B VARCHAR(10)=NULL,@C VARCHAR(10)='C'
    SELECT CONCAT(@A,@B,@C)

    不用CONCAT函数的话,我经常是这样转换:

    DECLARE @A VARCHAR(10)='A',@B VARCHAR(10)=NULL,@C VARCHAR(10)='C'
    SELECT ISNULL(@A,'')+ISNULL(@B,'')+ISNULL(@C,'')

    2.3、OUTPUT子句

    1)返回增、删、改记录:

    --数据表
    CREATE TABLE StudentA
    (
        ID VARCHAR(32),
        Name VARCHAR(20),
        Sex VARCHAR(10)
    )
    GO
    --返回新增记录
    INSERT INTO STUDENTA (ID,NAME,SEX) OUTPUT Inserted.* VALUES ('1004','赵六','')
    GO
    --返回更改前及更改后记录
    UPDATE STUDENTA SET SEX='' OUTPUT Deleted.*,Inserted.* WHERE ID='1004'
    GO
    --返回删除前记录
    DELETE FROM STUDENTA OUTPUT Deleted.* WHERE ID='1004'
    GO

    2.4、timestamp类型

    1)表⾏加版本戳,插入时自动产生TS,更改数据时,TS也会跟着更新。

    --数据表
    CREATE TABLE [dbo].[StudentA](
        [ID] [VARCHAR](32) NULL,
        [Name] [VARCHAR](20) NULL,
        [Sex] [VARCHAR](10) NULL,
        [TS] [TIMESTAMP] NULL
    ) ON [PRIMARY]
    GO
    INSERT INTO STUDENTA (ID,NAME,SEX) VALUES ('1001','张三','')
    SELECT * FROM STUDENTA
    GO
    UPDATE STUDENTA SET SEX='' WHERE ID='1001'
    SELECT * FROM STUDENTA
    GO
  • 相关阅读:
    lodop传统模板和文档式模板demo
    (方案,没有代码)直播服务器搭建,pc播放和手机播放
    银联在线网关支付测试运行的相关操作(个人笔记)
    docker停止mysql后容器消失
    打包发布ReactNative流程、提测
    工作中常用到的 Git 命令收藏
    React中函数式组件进行优化
    应该知道的TCP/IP
    移动应用消息推送及推送原理
    React中Refs的使用方法
  • 原文地址:https://www.cnblogs.com/atomy/p/16263832.html
Copyright © 2020-2023  润新知