记录常用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
分类:
数据库 / SQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!