首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CHARINDEX怪异

CHARINDEX怪异
EN

Stack Overflow用户
提问于 2018-08-17 19:06:57
回答 1查看 85关注 0票数 4

你认为以下结果如何?

代码语言:javascript
复制
SELECT CHARINDEX('space and /* comment */', 'Phrase with space and /* comment */') AS MatchPosition;
DECLARE @SearchWord varchar =  'space and /* comment */'
SELECT CHARINDEX(@SearchWord, 'Phrase with space and /* comment */') AS MatchPosition;
SELECT CHARINDEX(@SearchWord, 'Phrase with space and comment') AS MatchPosition;

我预期结果1和2是相同的,结果3是零,但实际上结果2和3是相同的,它们不是零,也不等于结果1。

到底怎么回事?

我在https://learn.microsoft.com/en-us/sql/t-sql/functions/charindex-transact-sql?view=sql-server-2017没有见过这样的预防措施

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-17 19:09:08

渔获物在这里:

代码语言:javascript
复制
DECLARE @SearchWord varchar =  'space and /* comment */'
SELECT @SearchWord;
-- s

来自char和varchar 当数据定义或变量声明语句中未指定n时,默认长度为1.

应:

代码语言:javascript
复制
-- defining size to avoid implicit truncating
DECLARE @SearchWord varchar(100) =  'space and /* comment */'
SELECT @SearchWord;

我预期结果1和2是一样的,结果3是0。

对,是这样。

代码语言:javascript
复制
SELECT CHARINDEX('space and /* comment */', 'Phrase with space and /* comment */') AS MatchPosition;
DECLARE @SearchWord varchar(100) =  'space and /* comment */'
SELECT CHARINDEX(@SearchWord, 'Phrase with space and /* comment */') AS MatchPosition;
SELECT CHARINDEX(@SearchWord, 'Phrase with space and comment') AS MatchPosition;

Rextester演示

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51901524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档