#工作中碰到的#记录下
1、数据库里用了大量的 主键是 UNIQUEIDENTIFIER 类型的 (GUID)
但有时候查询需要查询 全为0 的情况 比如
SELECT * FROM USERS WHERE PKUser='00000000-0000-0000-0000-000000000000'
但实际上可以写为 效果是一样的
SELECT * FROM USERS WHERE PKUser='0x0'
2、有时候查询英文 需要区分大小写字母 sqlserver 默认是不区分大小写的
可以在查询的时候增加函数 CHINESE_PRC_CS_AS 区分大小写、区分重音
SELECT * FROM USERS WHERE Name COLLATE CHINESE_PRC_CS_AS ='我是大写A'
3、碰到有JSON存储的列
Student表内插入一条数据
INSERT INTO Student(Name,Age,jsonData)
Valuse('关羽',22,
'{
"Hobby": "耍大刀",
"Gender": "男"
}'
)
1、获取指定JSON对象中的值
JSON_VALUE(要查询的列,JSON中指定的路径 以$.开头)
SELECT Name,Age,JSON_VALUE(jsonData,'$.Hobby') AS 爱好,
From Student
输出
关羽,22,耍大刀
2、修改指定JSON对象中的值
JSON_MODIFY(要查询的列,JSON中指定的路径 以$.开头,新值内容)并返回修改后的完整json
修改 关羽的 Hobby 为‘关公爱赤兔’
UPdate Student SET jsonData= JSON_MODIFY(jsonData,'$.Hobby','关公爱赤兔')
WHERE Name='关羽'
jsonData中的Hobby 值就会被修改为‘关公爱赤兔’
4、处理日期类型的字段
--取指定的年月日 当前时间的 时分秒
SELECT
CAST(
CAST(CAST('2024-05-20' AS DATE) AS DATETIME)--年月日
+
CAST(CAST(GETDATE() AS TIME) AS DATETIME) --时分秒
as datetime)AS 时间