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';查不出来数据
展开
 我来答
请叫我召哥
2012-08-24 · TA获得超过792个赞
知道小有建树答主
回答量:572
采纳率:95%
帮助的人:380万
展开全部
因为'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这条数据记录了来。。
龙氏风采
推荐于2017-07-28 · 知道合伙人互联网行家
龙氏风采
知道合伙人互联网行家
采纳数:5849 获赞数:12817
从事互联网运营推广,5年以上互联网运营推广经验,丰富的实战经

向TA提问 私信TA
展开全部
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……
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
射手幽灵伊
2012-08-24 · TA获得超过2716个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1988万
展开全部
先定义一个串变量
c_sql := "select name from A where x"||to_char(sysdate,'dd') || " ='xxxx' "
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式