您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

像0 = 0这样的条件的确切含义是什么?

像0 = 0这样的条件的确切含义是什么?

使用动态sql时,可能需要添加额外的子句,具体取决于满足某些条件。1 = 1子句在查询中没有任何意义(除了始终满足),它的唯一用途是降低用于生成查询代码的复杂性。

例如,此伪代码

DECLARE
v_text VARCHAR2(2000) := 'SELECT * FROM table WHERE 1=1 ';
BEGIN

    IF condition_a = met THEN
    v_text := v_text ||' AND column_1 = ''A'' ';
    END IF;

    IF condition_b = also_met THEN
    v_text := v_text ||' AND column_2 = ''B'' ';
    END IF;

execute_immediate(v_text);

END;

比下面的伪代码更简单,并且随着添加更多子句,它只会变得更加混乱。

DECLARE
v_text VARCHAR2(2000) := 'SELECT * FROM table  ';
BEGIN

    IF condition_a = met THEN
    v_text := v_text ||' WHERE column_1 = ''A'' ';
    END IF;

    IF condition_b = also_met AND 
       condition_a != met THEN
    v_text := v_text ||' WHERE column_2 = ''B'' ';
    ELSIF condition_b = also_met AND 
       condition_a = met THEN
    v_text := v_text ||' AND column_2 = ''B'' ';
    END IF;

execute_immediate(v_text);

END;
其他 2022/1/1 18:41:35 有447人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶