我正在使用这个SELECT:
select romaji, CHARINDEX(Romaji,' ',1) from phrase
或此SELECT:
select romaji, CHARINDEX(RTRIM(Romaji),' ',1) from phrase
并且我在第二列中得到了所有零的输出,即使对于morau的情况,在romaji列中只有一个单词:
ryūgaku 0
tsumaranai 0
aka-i kaban-desu 0
kekkon shite-i-masu 0
morau 0
任何人都可以就我可能做错的事给我一些建议吗?
请注意,romaji被定义为NVARCHAR(MAX)
答案 0 :(得分:5)
在CHARINDEX
中,第一个参数应该是需要在字符串中搜索的子字符串。
CHARINDEX ( expressionToFind , expressionToSearch , start_location )
<强>查询强>
select romaji, charindex(' ', rtrim(romaji), 1) from phrase;
答案 1 :(得分:2)
如果您只是想知道是否有空格,我建议您改为使用case
和like
:
select romaji, (case when rtrim(Romaji) like '% %' then 1 else 0 end) as HasSpace
from phrase;
当然,你可能真的想要空间的位置,在这种情况下charindex()
是正确的选择。