代码之家  ›  专栏  ›  技术社区  ›  samuil

SQL中的字符串函数

  •  0
  • samuil  · 技术社区  · 16 年前

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


    所有给定的解决方案都不起作用,但在他们的帮助下,我能够自己解决。 Substring 函数确实存在,但具有不同的语法。您必须使用正确的关键字而不是逗号:

    Substring(col from pos for count)
    
    5 回复  |  直到 16 年前
        1
  •  2
  •   Charles Bretana    16 年前

    是的,不要选择列本身,而是编写一个表达式,将前缀lj替换为Nothing。

       Select case When colName Like 'LJ%' 
                    Then SubString([colName], 2, Len(colName) - 2)
                    Else ColName End
       From ... 
    
        2
  •  1
  •   KM.    16 年前
    SELECT
      CASE Substring(columnName, 2, 2) IS 'LJ' THEN Subsrtring(columnName, 2, LEN(columnName) -2) ELSE columnName END
    

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

    希望有帮助!

        3
  •  0
  •   D'Arcy Rittich    16 年前
    select case 
               when substring(MyColumn, 1, 2) = 'LJ' 
                   then substring(MyColumn, 3, len(MyColumn) - 2) 
               else 
                   MyColumn 
           end
    
        4
  •  0
  •   Brian Fisher    16 年前

    您可以使用字符串操作:

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

    不确定这在Firebird中是否有效(在MySQL上测试)。

        5
  •  0
  •   José Romero    16 年前

    得到一份 FreeUDFLib ,它有很多用于字符串、数学、日期、转换、blob处理等的函数。它可以做您想要做的,还有很多事情