在sql Equal语句中构建动态字符串

时间:2018-10-08 09:40:47

标签: sql string oracle

我需要一些东西在sql equal语句中构建字符串,该语句由两部分组成,第一部分由我选择,第二部分由查询动态生成

select * from table
where param1= 'test' + (select distinct param2 from table2 where ...)

第二个选择当然总是只返回一个记录。 因此where子句应为where param1='test'+param2

我尝试了concat函数,但这似乎不是正确的方法;有什么建议吗?

2 个答案:

答案 0 :(得分:3)

Oracle使用ANSI标准||运算符进行字符串连接。因此,使用此:

SELECT *
FROM yourTable
WHERE param1 = 'test' || (SELECT DISTINCT param2 FROM table2 WHERE ...);

CONCAT函数也应在这里工作:

SELECT *
FROM yourTable
WHERE param1 = CONCAT('test', (SELECT DISTINCT param2 FROM table2 WHERE ...));

答案 1 :(得分:1)

select * from table
where param1= 'test' || (select distinct param2 from table2 where ...)