作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个奇怪的问题,过去几个小时我一直在摸不着头脑。
我有一个相对简单的TSQL
SELECT
LTRIM(RTRIM(bom_comp_code)) [bom_comp_code]
, bom_product
, bom.actual_partnumber
FROM
dbo.MRP_ALL bom
WHERE
bom.bom_product = 'F00434'
这将返回 500 行结果,如 - 完美
[bom_comp_code] [bom_product] [actual_partnumber]
M03275 F00434 99292922
M03275 F00434 99292922
B01869 F00434 99292922
B01869 F00434 99292922
M03275 F00434 99292922
M03275 F00434 99292922
B01869 F00434 99292922
...
...
B01869 F00434 99292922
B01869 F00434 99292922
M03275 F00434 1110-011
M03275 F00434 1110-011
现在我只对以 M 开头的 bom_comp_code 感兴趣,所以很自然地我使用以下 TSQL
SELECT
LTRIM(RTRIM(bom_comp_code)) [bom_comp_code]
, bom_product
, bom.actual_partnumber
FROM
dbo.MRP_ALL bom
WHERE
bom.bom_product = 'F00434'
AND LTRIM(RTRIM(bom.bom_comp_code)) like 'M%'
但这只会返回一行!
[bom_comp_code] [bom_product] [actual_partnumber]
M03275 F00434 1110-011
我这辈子都无法理解为什么当表中有 224 个符合我的条件时只返回一行
LTRIM/RTRIM 是我认为 bom_comp_code 字段周围有空格,但这不起作用。
为了以防万一,我也围绕 bom_product 进行了尝试。
有什么可能阻止我所有的行返回?
最佳答案
使用 LEFT()
AND LEFT(bom_comp_code, 1) = 'M'
如果你真的有空格
AND LEFT(LTRIM(bom_comp_code), 1) = 'M'
检查字符串开头是否有特殊字符,然后像这样调试
SELECT LEFT(LTRIM(bom_comp_code), 1) as first_char,
ASCII (LEFT(LTRIM(bom_comp_code), 1)) as ascii_number
LTRIM(bom_comp_code)
FROM dbo.MRP_ALL bom
关于SQL WHERE Like 子句不返回所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334043/
我是一名优秀的程序员,十分优秀!