Эквивалентный strconv в БД Advantage SQL - PullRequest
0 голосов
/ 31 января 2019

Я преобразовываю запрос доступа, который обновляет поля из ВСЕХ КАПС в Основную обычную заглавную букву, остальные строчные.В доступе я использовал strconv Ive не нашел аналогичную функцию в преимуществе sql db.Я нашел верхний и нижний регистр, но они, кажется, не работают для меня.

StrConv ([Город], 3)

Процесс импорта переносит все заглавные буквы в поле с именем Город.Таким образом, City приходит как Чикаго, мой конечный результат будет Чикаго, и это работает в доступе с использованием strconv, 3

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Это утверждение должно работать: SELECT Upper( Left( [field], 1 ) ) + Lower( SubString( [field], 2, Length( [field] )-1 ) ) FROM CustomersTbl

0 голосов
/ 05 февраля 2019

Advantage не имеет функции StrConv, но есть несколько способов сделать то же самое.

Я использовал переменную сценария в этом сегменте кода для эмуляции поля.Вы можете заменить все экземпляры cityname именем столбца вашей базы данных (поля).Выберите тот, который вам нравится.system.iota - это однорядная системная база данных, которую можно использовать в Advantage, если вы не хотите использовать реальную таблицу для тестирования функций.Конечно, вы бы заменили его своим реальным именем таблицы в своем собственном коде.Вы можете запустить каждый из примеров операторов выбора (отдельно) в Утилите базы данных Advantage, чтобы протестировать их;выберите тот, который кажется вам наиболее чистым, поскольку они одинаковы с точки зрения производительности.(ПРИМЕЧАНИЕ: UCase() и UpperCase() - это одни и те же внутренние функции; они оба существуют просто потому, что некоторые пользователи ожидают найти UCase(), а другие UpperCase() в зависимости от используемого языка программирования. То же самое верно и дляLCase() и LowerCase().)

Я специально использовал смешанную сумку букв верхнего / нижнего регистра в переменной cityname ниже, чтобы продемонстрировать, что фактический регистр не имеет значения;предоставленные операторы приведут к правильному регистру (первая буква верхняя, остальные нижняя).

declare cityname string;
set cityname = 'cHIcAGo';

-- Method 1
select 
  UCase(Substring(cityname, 1, 1)) + LCASE(SubString(cityname, 2, Length(cityname))) as city
from system.iota

-- Method 2
select
  UpperCase(Left(cityname, 1)) + LowerCase(SubString(cityname, 2, Length(cityname)) as city
from system.iota

-- Method 3
select 
  UCase(Left(cityname, 1)) + LCase(Right(cityname, Length(city) - 1)) as city
from system.iota
0 голосов
/ 31 января 2019

Никогда не использовал преимущество, но быстрый Google предлагает что-то вроде следующего должно работать.

CONCAT(SUBSTRING(field, 1, 1), LOWER(SUBSTRING(field, 2, LENGTH(field) - 1)))
...