У меня есть этот запрос,Удаление вкладки пространства в SQL Server 2012
INNER JOIN view AS vw ON vw.[Id] = vw2.[Id]
Проблема является возвращение в vw2. [Id] содержит табуляции в конце ('2012 „) и VW не (“ 2012'). Поэтому я пробовал делать
INNER JOIN view AS vw ON vw.[Id] = Replace(vw2.[Id], char(9), '')
К сожалению, сравнение по-прежнему возвращает false. Я думал, что это невозможно сделать при подключении, поэтому я попробовал его по выбранному запросу
SELECT *
FROM database.view2
WHERE REPLACE(Id, char(9), '') = '2012 '
Но этот запрос также возвращает false. Может кто-нибудь объяснить мне, какую концепцию я упускаю или недопонимаю?
EDIT
Здравствуйте и спасибо всем, кто принял свое время, чтобы помочь мне в этом. Кажется, что
vw.[Id] = LTRIM(RTRIM(REPLACE(vw2.[Id], char(9), '')
сделал трюк. Я продолжаю использовать REPLACE
на обоих концах, что является результатом очень длительного времени запроса, которое не является необходимым. Я использовал LTRIM
и RTRIM
также для получения данных, но с момента возврата varbinary
он не нужен, и я не понимаю, что я делаю неправильно. Но сейчас он работает, спасибо всем.
Какие типы данных являются двумя идентификаторами, хранящимися как? – Sturgus
Привет @Sturgus оба находятся в nvarchar –
Что является результатом 'select vw2. [Id], cast (vw2. [Id] как varbinary (max))' для значения, которое, по вашему мнению, заканчивается на одной вкладке? –