【发布时间】:2019-04-24 13:12:54
【问题描述】:
我试图通过在字符串字段 Part_Comment 中查找空格“”的第一个实例来返回字符串中的第一个“单词”。 Part_Comment 字段中的字符串示例如下:
13088V21 () (FAB)
G16707 (FOLD) ()
16636U01.01
我试过了:
substring(Part_Comment from 1 for position(' ' in Part_Comment)-2) as "AssyNo",
出现错误“关键字'from'附近的语法不正确。”但是当我单独使用 Part_Comment 时效果很好。
substring(Part_Comment from 1) as "AssyNo",
和上面一样的错误
left(Part_Comment,10) as "AssyNo",
这可行,但我需要使用position 函数或其他东西来查找“”子字符串。但显然position 函数在发生多个实例时返回 0。
我想这是用户想要的很常见的事情,所以必须有一个简单的解决方案。
【问题讨论】:
-
您确定您使用的是 FB2.5 吗?因为在 2.0 中添加了对长度(和 startpos)作为任何有效整数表达式的支持,所以低于它的版本要求长度必须是整数文字。
-
您确定您使用的是 Firebird 吗? “关键字 .. 附近的语法不正确” 不是 Firebird 错误消息,而是 Microsoft SQL Server 错误消息。
-
@MarkRotteveel MS SQL 还是 MySQL?我相信我经常在使用 MYSQL 5.6 的 SQLFiddle 上看到这个错误
-
@Arioch'MySQL 使用 "Incorrect syntax near .."(所以没有'关键字')
-
@MarkRotteveel - 你是对的!它是 MS SQL。所以我使用了错误的功能,因为位置不存在。
标签: sql-server position substring