построить динамическую строку в SQL-выражении Equal - PullRequest
0 голосов
/ 08 октября 2018

Мне нужно что-то, чтобы построить строку в SQL-запросе равенства, состоящем из двух частей: первой, выбранной мной, и второй, динамически генерируемой запросом.

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

, второй выбор всегда возвращаеттолько одна запись, конечно.Так что предложение where должно быть where param1='test'+param2

Я пробовал использовать функцию concat, но это не совсем правильно;Любое предложение?

Ответы [ 2 ]

0 голосов
/ 08 октября 2018
select * from table
where param1= 'test' || (select distinct param2 from table2 where ...)
0 голосов
/ 08 октября 2018

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 ...));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...