我需要返回字符串列的查询(更具体地说,它是视图,而不是查询)。字符串将是代码,可能以两个字母(LJ)为前缀。如果它是前缀 - 必须修剪前缀。如果没有前缀,则应保持不变。是否可以在SQL中执行此类操作?服务器是FirebirdSQL 1.5。
没有一个解决方案有效,但在他们的帮助下,我能够自己解决这个问题。 Substring
函数确实存在,但语法不同。您必须使用正确的关键字而不是逗号:
Substring(col from pos for count)
答案 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处理等功能。它会做你想要的,更多的东西