SQL中的字符串函数

时间:2009-10-02 17:22:41

标签: sql string firebird

我需要返回字符串列的查询(更具体地说,它是视图,而不是查询)。字符串将是代码,可能以两个字母(LJ)为前缀。如果它是前缀 - 必须修剪前缀。如果没有前缀,则应保持不变。是否可以在SQL中执行此类操作?服务器是FirebirdSQL 1.5。


没有一个解决方案有效,但在他们的帮助下,我能够自己解决这个问题。 Substring函数确实存在,但语法不同。您必须使用正确的关键字而不是逗号:

Substring(col from pos for count)

5 个答案:

答案 0 :(得分:2)

是的,而不是选择列本身,写一个表达式,用什么

替换前缀LJ
   Select case When colName Like 'LJ%' 
                Then SubString([colName], 2, Len(colName) - 2)
                Else ColName End
   From ... 

答案 1 :(得分:1)

SELECT
  CASE Substring(columnName, 2, 2) IS 'LJ' THEN Subsrtring(columnName, 2, LEN(columnName) -2) ELSE columnName END

这就是我认为你正在寻找的,没有执行测试,但你得到了要点......

希望它有所帮助!

答案 2 :(得分:0)

select case 
           when substring(MyColumn, 1, 2) = 'LJ' 
               then substring(MyColumn, 3, len(MyColumn) - 2) 
           else 
               MyColumn 
       end

答案 3 :(得分:0)

你可以用字符串操作来做到这一点:

SELECT CONCAT(REPLACE(LEFT(column_name,2), 'LJ', ''), SUBSTRING(column_name, 3))

不确定这会在Firebird中运行(在Mysql上测试)。

答案 4 :(得分:0)

获取FreeUDFLib的副本,它有很多字符串,数学,日期,转换,blob处理等功能。它会做你想要的,更多的东西