UpperCase имя и фамилия найти из таблицы, если есть имя и фамилия более одного символа - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу получить имя и фамилию из таблицы, которые указаны заглавными буквами, но имя должно содержать более одного символа в результате

, если предположить, что имя - ВИЛЬЯМ, и поэтому оно должно быть выбрано, но если имя -Если это не должно быть

Пока я достиг этого результата, это выборка имени в верхнем регистре, но также выборка имени, которое имеет только один символ, которого не должно быть

SELECT  pp.pid, mp.fnm, mp.lnm
FROM mmd_all_people mp join
     people pp
     ON mp.contid = pp.contid join
     entities es
     ON pp.pid = es.pid join
     entnums nums
     On es.pid=nums.pid
WHERE regexp_like (mp.fnm, '^[[:upper:]] + $') or
      regexp_like (mp.LNM, '^[[:upper:]] + $') AND
      ES.MMD = 'A' AND
      ((nums.TOTASS) > 50000)

Ответы [ 4 ]

1 голос
/ 26 сентября 2019

Вы можете использовать length ().Добавьте эту строку в предложение where:

and length(mp.fnm) > 1
0 голосов
/ 26 сентября 2019

выберите pp.pid, mp.fnm, mp.lnm из mmd_all_people mp объединить людей pp на mp.contid = pp.contid где (regexp_like (mp.fnm, '^ [[: upper:]] + $')или regexp_like (mp.LNM, '^ [[: upper:]] + $')) и (length (mp.fnm)> 2 и length (mp.lnm)> 2) готово

0 голосов
/ 26 сентября 2019

Я не уверен, что вы подразумеваете под "именем", учитывая, что у вас есть два столбца имени в запросе.Если вы хотите, чтобы каждый из них имел по крайней мере два символа, измените регулярные выражения:

WHERE (regexp_like(mp.fnm, '^[[:upper:]]{2,}$') or
       regexp_like(mp.LNM, '^[[:upper:]]{2,}$')
      ) AND
      . . .

Я подозреваю, что вашей реальной проблемой является отсутствие скобок вокруг первых двух условий.

0 голосов
/ 26 сентября 2019

Если вы хотите вернуть имена, у которых имя длина больше 1, добавьте еще одно условие:

and length(mp.fnm) > 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...