У меня есть эта функция, которая получает первое слово из строки:
CREATE FUNCTION dbo.FIRST_WORD(@value nvarchar(1000))
RETURNS nvarchar(1000)
AS
BEGIN
RETURN CASE CHARINDEX(' ', @value, 1)
WHEN 0
THEN @value
ELSE SUBSTRING(@value, 1, CHARINDEX(' ', @value, 1) - 1) END
END
GO
Проблема в том, что данные в моей таблице имеют формат non-ASCII
, поэтому, когда я передаю некоторое значение этой функции, я получаюзнаки вопроса вместо результата:
SELECT dbo.FIRST_WORD('ничего не поделаешь')
возвращает: ??????
Но если я передам ASCII
символов, например:
SELECT dbo.FIRST_WORD('hello world')
возвращает: hello
, как и ожидалось.
Я пытался добавить N
перед аргументом, но это не помогло:
SELECT dbo.FIRST_WORD(N'ничего не поделаешь')
все еще возвращает: ??????