Получение только длины возвращаемой строки в результате запроса SQL с использованием базы данных Derby - PullRequest
1 голос
/ 24 мая 2019

Я хочу проверить, равна ли длина строки, возвращенной из SQL-запроса 3. Я использую DERBY DB.

Я пробовал что-то вроде:

ij> select * from tmpuser.friends where length(select distinct ss.schemaname from sys.sysschemas ss fetch next 1 row only)=3;

Но этот запрос недействителен. Я хочу показать результат

select * from tmpuser.friends

только если

length(select distinct ss.schemaname from sys.sysschemas ss fetch next 1 row only)=3;

верно.

ij> select distinct ss.schemaname  from sys.sysschemas ss;
SCHEMANAME
--------------------------------------------------------------------------------------------------------------------------------
APP
NULLID
SQLJ
SYS
SYSCAT
SYSCS_DIAG
SYSCS_UTIL
SYSFUN
SYSIBM
SYSPROC
SYSSTAT
TMPUSER

12 rows selected
ij> select distinct ss.schemaname  from sys.sysschemas ss fetch next 1 row only;
SCHEMANAME
--------------------------------------------------------------------------------------------------------------------------------
APP

Я хочу сделать тест: длина 'APP' равна 3?

Я ожидаю, что запрос вернет пустой результат, если test если false, в противном случае запустите оператор select.

1 Ответ

0 голосов
/ 24 мая 2019

Я надеюсь, что CASE выражение поможет в этом случае, вы можете попробовать запрос ниже:

select distinct CASE WHEN length(ss.schemaname) = 3 THEN ss.schemaname ELSE '' END AS SCHEMANAME
from sys.sysschemas ss 
fetch next 1 row only;
...