这是我的工作查询
我有一个表,其中有 2 个唯一列 ain(不为空)+ schemacode(可以为空)
案例1:
SET @ain = '000002304000134';
SET @sc = NULL;
SELECT * FROM account
WHERE (ain=@ain AND Schemecode=@sc AND @sc IS NOT NULL) OR (ain=@ain AND Schemecode IS NULL AND @sc IS NULL)
案例2:
SET @ain = '000002304000134';
SET @sc = '00000';
SELECT * FROM account
WHERE (ain=@ain AND Schemecode=@sc AND @sc IS NOT NULL) OR (ain=@ain AND Schemecode IS NULL AND @sc IS NULL)
案例3:
SET @ain = '000002304000134';
SET @sc = '00001';
SELECT * FROM account
WHERE (ain=@ain AND Schemecode=@sc AND @sc IS NOT NULL) OR (ain=@ain AND Schemecode IS NULL AND @sc IS NULL)
对于所有 3 个场景工作查询。以上语法看起来很长。语法是否可以缩小,请告诉我我想在 ef core (lambda ) 以及普通 sql 中使用
您想使用空安全比较运算符
<=>
:
SELECT * FROM account
WHERE ain=@ain AND Schemecode<=>@sc