Advantage SQL DB中的等效strconv

时间:2019-01-31 15:07:15

标签: sql string advantage-database-server

我正在将一个访问查询转换为将所有大写字母的字段更新为基本正常的首字母大写,其余为小写。在可访问的strconv中 我还没有在优势sql数据库中找到类似的功能。我已经找到了上和lcase,但那些似乎不适合我。

StrConv([City],3)

导入过程会将所有大写字母引入到名为City的字段中。因此,City以CHICAGO的身份出现,我的最终结果是芝加哥,这在使用strconv,3的访问中有效

3 个答案:

答案 0 :(得分:0)

从未使用过优势,但是快速的Google提出了以下建议。

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

答案 1 :(得分:0)

此语句应该起作用:SELECT Upper( Left( [field], 1 ) ) + Lower( SubString( [field], 2, Length( [field] )-1 ) ) FROM CustomersTbl

答案 2 :(得分:0)

Advantage没有StrConv函数,但是有几种方法可以完成相同的操作。

我在此代码段中使用了脚本变量来模拟该字段。您可以将cityname的所有实例替换为数据库列(字段)的名称。选择一个你喜欢的。 system.iota是一个单行系统数据库,当您不想使用真实表来测试功能时可以在Advantage中使用。当然,您可以在自己的代码中将其替换为实际的表名。您可以在Advantage Database Utility中运行每个样本select语句(分别)来进行测试;选择对您来说最干净的一个,因为就性能而言它们都是一样的。 (注意: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