我有这样的记录:
RCV0001
RCV0002
RTN0003
RTN0004
SLE0005
RCV0006
我想查询仅以'RCV'开头并仅显示记录的记录。
这是我到目前为止所尝试的:
select substring(documentnumber, 1)
LIKE '%RCV%'
from transactionheader
但我没有得到我想要的结果。有任何想法吗?我很乐意感谢你的帮助。感谢。
答案 0 :(得分:4)
需要在where语句
上添加过滤器select documentnumber
from transactionheader
where documentnumber LIKE 'RCV%'
答案 1 :(得分:1)
查询的选择列表中的表达式返回一个布尔值,因此查询将仅为表中的每一行返回0,1或NULL。
SELECT SUBSTRING(documentnumber, 1) LIKE '%RCV%'
FROM transactionheader
对于表中的每一行,将检查documentnumber的第一个字符,看它是否包含字符串'RCV',这将永远不会成立。对于每一行,查询将返回0或NULL。
有多个查询将返回以“RCV”开头的文档编号。这是一个例子:
SELECT h.documentnumber
FROM transactionheader h
WHERE h.documentnumber LIKE 'RCV%'
WHERE
子句指定将对每一行执行的条件测试,只返回“满足”谓词的行。
答案 2 :(得分:0)
您的原始查询没有WHERE子句,因此所有内容都被选中。另外,我建议改用REGEXP。这是我重写的例子。
SELECT substring(documentnumber, 1)
FROM transaction header
WHERE documentnumber REGEXP '^RCV'
;