oracle中sql语句如何动态拼接 5
表A(name,X1,X2,...X31)oracle中为什么用selectnamefromAwhere'x'||to_char(sysdate,'dd')=‘xxxx’...
表A (name,X1,X2,...X31)
oracle中 为什么用
select name from A where 'x'||to_char(sysdate,'dd')=‘xxxx’; 或者
select name from A where concate('x',trim('0' from to_char(sysdate,'dd')))='xxxx';查不出来数据呢?
比如说今天是24号
select name from A X24='xxxx';
明天
select name from A X25='xxxx';
怎样实现呢?
select name from A where concat('x',trim('0' from to_char(sysdate,'dd')))='xxxx';查不出来数据 展开
oracle中 为什么用
select name from A where 'x'||to_char(sysdate,'dd')=‘xxxx’; 或者
select name from A where concate('x',trim('0' from to_char(sysdate,'dd')))='xxxx';查不出来数据呢?
比如说今天是24号
select name from A X24='xxxx';
明天
select name from A X25='xxxx';
怎样实现呢?
select name from A where concat('x',trim('0' from to_char(sysdate,'dd')))='xxxx';查不出来数据 展开
3个回答
展开全部
因为'x'||to_char(sysdate,'dd')=‘xxxx’这个条件不满足,所以查询不到数据。
'x'||to_char(sysdate,'dd')明显不等于'xxxx',能查询到数据就是怪事了。
如果你想查询到数据,必须保证'x'||to_char(sysdate,'dd')的值等于'xxxx'
就拿今天来说'x'||to_char(sysdate,'dd')的值肯定是x24。
'xxxx'的值是为xxxx,不等于x24。肯定查询不到数据。
你这个语句就跟
select name from A where 1>2这个语句的效果一样。
如果你的xxxx表示你表中的一个字段,比如X1,X2..X31,
如:
select name from A where 'x'||to_char(sysdate,'dd')=x24;
你做关联的是用你的字段名,但是判断取值的是时候,却是取的x24这一列里面的值。
如果x24这一列里面有一列的值是x24,肯定查得出数据,如果没有,肯定就查不出来,
你先确实有没得x24这条数据记录了来。。
'x'||to_char(sysdate,'dd')明显不等于'xxxx',能查询到数据就是怪事了。
如果你想查询到数据,必须保证'x'||to_char(sysdate,'dd')的值等于'xxxx'
就拿今天来说'x'||to_char(sysdate,'dd')的值肯定是x24。
'xxxx'的值是为xxxx,不等于x24。肯定查询不到数据。
你这个语句就跟
select name from A where 1>2这个语句的效果一样。
如果你的xxxx表示你表中的一个字段,比如X1,X2..X31,
如:
select name from A where 'x'||to_char(sysdate,'dd')=x24;
你做关联的是用你的字段名,但是判断取值的是时候,却是取的x24这一列里面的值。
如果x24这一列里面有一列的值是x24,肯定查得出数据,如果没有,肯定就查不出来,
你先确实有没得x24这条数据记录了来。。
推荐于2017-07-28 · 知道合伙人互联网行家
关注
展开全部
SQL code
--在存储过程里面完成呗
--例:
create or replace procedure yyp_cwdh(table_name varchar)
is
str_sql varchar2(400):='';
begin
str_sql:='select * from '||table_name||' where 1=1';
execute immediate st……
--在存储过程里面完成呗
--例:
create or replace procedure yyp_cwdh(table_name varchar)
is
str_sql varchar2(400):='';
begin
str_sql:='select * from '||table_name||' where 1=1';
execute immediate st……
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先定义一个串变量
c_sql := "select name from A where x"||to_char(sysdate,'dd') || " ='xxxx' "
c_sql := "select name from A where x"||to_char(sysdate,'dd') || " ='xxxx' "
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询