记录常用SQL

创建表
CREATE TABLE WorkOrderTimeFlowRecord(
	Id int identity(1,1) primary key,
	
	CreatedTime datetime NULL,
	CreatedUserId varchar(50) NULL,
	
	UpdatedProgressTime datetime NULL,
	UpdatedProgressUserId varchar(50) NULL,
	
	TurnAssignTime datetime NULL,
	TurnAssignUserId varchar(50) NULL,
	AssignUserIds varchar(50) NULL,
	
	ReplyTime datetime NULL,
	ReplyUserId varchar(50) NULL,
	
	ClosuredTime datetime NULL,
	ClosuredUserId varchar(50) NULL,
	
	CanceledTime datetime NULL,
	CanceledUserId varchar(50) NULL,
)
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'工单时间流水记录' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WorkOrderTimeFlowRecord'
添加字段注释,注意:如果当前查询处于当前库,@level0name不能写库名,写dbo即可,否则报错:
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WorkOrderTimeFlowRecord', @level2type=N'COLUMN',@level2name=N'CreatedTime'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WorkOrderTimeFlowRecord', @level2type=N'COLUMN',@level2name=N'CreatedUserId'
修改字段名称
--更改ClosureTime字段名称
-- ALTER TABLE SinadealTradeDB.dbo.WorkOrder rename column ClosureTime to ClosuredTime
EXEC sp_rename 'WorkOrder.[ClosureTime]','ClosuredTime','COLUMN';
删除字段
ALTER TABLE SinadealTradeDB.dbo.WorkOrder drop column LastReplyTime
创建索引
-- MySQL、MariaDB、SQL Server
CREATE INDEX idx_YYMM ON GBReportCenter.dbo.Amazon_Orders(YYMM);
CharIndex如何参数化查询
IF ISNULL(@BrandId,'') <> ''
    SET @where = @where + ' AND CHARINDEX(
                        ' + QUOTENAME(@BrandId, '''') + ',
                        STUFF(
                              (
                               SELECT '','' + BrandId 
                                FROM OPENJSON(SKUInfoJson) WITH (
                                    BrandId varchar(50)
                                )
                                FOR XML PATH('''')
                              ), 1, 1, ''''
                            )
                    ) > 0 ';

COALESCE使用
-- 示例数据
CREATE TABLE ExampleTable (
    Column1 INT,
    Column2 INT,
    Column3 INT
);

INSERT INTO ExampleTable (Column1, Column2, Column3)
VALUES (NULL, 42, 99);

-- 使用 COALESCE 函数
SELECT
    COALESCE(Column1, Column2, Column3) AS Result
FROM
    ExampleTable;

在这个例子中,COALESCE 函数将返回第一个非 NULL 列的值。如果 Column1 是 NULL,它会检查 Column2;如果 Column2 也是 NULL,它会检查 Column3。在这种情况下,结果是 42。
你还可以将 COALESCE 与其他 SQL Server 函数和运算符一起使用,以构建更复杂的逻辑。

-- 示例:使用 COALESCE 与 CASE 语句
SELECT
    CASE
        WHEN COALESCE(Column1, Column2, Column3) > 50 THEN 'High'
        ELSE 'Low'
    END AS Category
FROM
    ExampleTable;

在这个示例中,COALESCE 用于确定第一个非 NULL 列的值,然后与 50 进行比较,返回相应的分类。

请注意,在一些情况下,COALESCE 可能会被 ISNULL 函数替代,因为它们在功能上是等效的。例如,上述示例中的 COALESCE 语句可以被替换为:

ISNULL(Column1, ISNULL(Column2, Column3)) AS Result
posted @ 2023-04-12 16:20  o李一波o  阅读(13)  评论(0编辑  收藏  举报