我需要一些东西在sql equal语句中构建字符串,该语句由两部分组成,第一部分由我选择,第二部分由查询动态生成
select * from table
where param1= 'test' + (select distinct param2 from table2 where ...)
第二个选择当然总是只返回一个记录。
因此where子句应为where param1='test'+param2
我尝试了concat函数,但这似乎不是正确的方法;有什么建议吗?
答案 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 ...)