注册

存储过程无法使用 not in或者<> 作用于变量失败,作用于常量成功。

速鬼_未来小师 2022/07/03 1029 4 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM管理工具 V8 (Build 2021.09.10)
【操作系统】:win 10
【CPU】:
【问题描述】*:
请大神解答!

image.png
image.png

--CREATE TABLE "CASE"."test_test_test" --( --"user_id" VARCHAR(32) NOT NULL, --"user_name" VARCHAR(10), --"age" INT, --NOT CLUSTER PRIMARY KEY("user_id")) STORAGE(ON "MAIN", CLUSTERBTR) ; -- --COMMENT ON TABLE "CASE"."test_test_test" IS '简单测试'; --insert into test_test_test VALUES('abcdef1','张三1',16); --insert into test_test_test VALUES('abcdef2','张三2',12); --insert into test_test_test VALUES('abcdef3','张三3',18); --insert into test_test_test VALUES('abcdef4','张三4',19); --insert into test_test_test VALUES('abcdef5','张三5',14); --insert into test_test_test VALUES('abcdef6','张三6',18); --insert into test_test_test VALUES('abcdef7','张三7',14); --insert into test_test_test VALUES('abcdef8','张三8',13); --insert into test_test_test VALUES('abcdef9','张三9',14); --insert into test_test_test VALUES('abcdef10','张三10',20); -- -- create or REPLACE PROCEDURE proc_test_test_test ( user_id in VARCHAR(32)) as BEGIN /* 问题描述:在全部用户ID中排除一个(或多个)用户ID 使用 <> 或 not in 时,查询无结果, 使用 常量 却可以查询出结果 使用 NOT IN ( user_id) 时无记录 使用 <> user_id 时也无记录 使用 'abcdef3' 常量代替时 却可以 */ SELECT * from test_test_test t where 1=1 --AND t.user_id <> user_id --无记录 AND t.user_id NOT IN ( user_id) --无记录 --AND t.user_id NOT IN ( 'abcdef3') --有记录 ; -- select user_id; --单独输出 为 abcdef3 end; call proc_test_test_test ('abcdef3');
回答 0
暂无回答
扫一扫
联系客服