Я новичок в SQL и Postgres, так что, надеюсь, это не так сложно понять для всех вас.Использование функции положения в функции случая - PostgreSQL
Я пытаюсь использовать функцию Позиции в сазе, но я получаю ошибку "ERROR: Syntax error at or near ""Project"". LINE 2: CASE WHEN position('(' IN "Project") >0 THEN".
Я использовал эту функцию положения до и она работала хорошо, так что я запутался, что проблема здесь. Я также пробовал имя таблицы, например "xyztable.Project"
и "Project"
- оба без кавычек.
Вот весь оператор:
SELECT "Project",
CASE WHEN postion('(' IN "Project") >0 THEN
substring("Project",position('(' IN "Project")+1,position(')' IN "Project")-2)
CASE WHEN postion('('IN "Project") IS NULL THEN
"Project"
END
FROM "2015Budget";
Как я не получил в прошлом второй строке этого заявления, если кто-нибудь увидит ничего, что бы предотвратить это заявление от запуска правильно, пожалуйста, указать это из.
Новое заявление:
SELECT "Project",
CASE
WHEN position('(' IN "Project") >0 THEN
substring("Project",position('(' IN "Project")+1,position(')' IN "Project")-2)
WHEN position('('IN "Project") IS NULL THEN
"Project"
END
FROM "2015Budget";
Спасибо за вашу помощь !!
А, я вижу. Думаю, я работал над этим слишком поздно ночью :). – christopheralan88
Я добавил новое утверждение к исходному вопросу. Однако строки не возвращаются, и я получаю два столбца: Project и Case. Вместо этого я хочу, чтобы возвращаемый столбец назывался Project Number, который возвращает подстроку в столбце Project, если поле Project содержит «(», в противном случае я хочу, чтобы он просто возвращал поле Project. Знаете ли вы, как это сделать? – christopheralan88
Он возвращается второй столбец, потому что у вас есть «Проект», указанный в первой строке вашего запроса. Вы можете назвать другой столбец, поставив «AS» Project Number «' в конце оператора 'CASE'. Если этот запрос возвращается –