некоторые странные признаки, появляющиеся на выходе запроса SQL SERVER - PullRequest
0 голосов
/ 30 мая 2018

Я написал запрос SELECT для SQL SERVER 2014.Я получил желаемый результат.но символ апострофа (') появляется в данных поля' TaskAction '(в конце каждого из данных).вот мой сценарий:

SELECT
  WOtask.PK,
  WOPK,
  TaskNo,
  TaskAction =
              CASE
                WHEN WOTask.AssetPK IS NOT NULL THEN '<b>' + Asset.AssetName + ' [' + Asset.AssetID + ']</b> ' + CASE
                    WHEN Asset.Vicinity IS NOT NULL AND
                      Asset.Vicinity <> '''' THEN RTRIM(Asset.Vicinity) + ': '
                    ELSE ''''
                  END + WOtask.TaskAction + CASE
                    WHEN CONVERT(varchar, ValueLow) IS NOT NULL AND
                      CONVERT(varchar, ValueHi) IS NOT NULL AND
                      Spec = 1 THEN ' (Range: '' + CONVERT(VARCHAR,CONVERT(FLOAT,ISNULL(ValueLow,0))) + '' - '' + CONVERT(VARCHAR,CONVERT(FLOAT,ISNULL(ValueHi,0))) + )'
                    ELSE ''''
                  END
                ELSE WOtask.TaskAction + CASE
                    WHEN CONVERT(varchar, ValueLow) IS NOT NULL AND
                      CONVERT(varchar, ValueHi) IS NOT NULL AND
                      Spec = 1 THEN ' (Range: '' + CONVERT(VARCHAR,CONVERT(FLOAT,ISNULL(ValueLow,0))) + '' - '' + CONVERT(VARCHAR,CONVERT(FLOAT,ISNULL(ValueHi,0))) + )'
                    ELSE ''''
                  END
              END,
  Rate,
  Measurement,
  Initials,
  Fail,
  Complete,
  Header,
  LineStyle,
  WOtask.Comments,
  WOtask.NotApplicable,
  WOTask.Photo1,
  WOTask.Photo2
FROM WOtask WITH (NOLOCK)
LEFT OUTER JOIN Asset WITH (NOLOCK)
  ON Asset.AssetPK = WOTask.AssetPK
LEFT OUTER JOIN AssetSpecification
  ON AssetSpecification.PK = WOTask.AssetSpecificationPK
WHERE (WOPK IN (SELECT
  WOPK
FROM WO WITH (NOLOCK)
LEFT OUTER JOIN Asset WITH (NOLOCK)
  ON Asset.AssetPK = WO.AssetPK
LEFT OUTER JOIN AssetHierarchy WITH (NOLOCK)
  ON AssetHierarchy.AssetPK = WO.AssetPK
WHERE WO.WOPK = 10109)
)
ORDER BY WOPK, TaskNo

теперь, пожалуйста, проверьте мой вывод и ошибку enter image description here

, пожалуйста, помогите решить эту проблему.Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Как отмечено в комментариях, используйте ELSE '' вместо ELSE ''''.Причина в том, что в паре одинарных кавычек '' указывает SQL избегать использования одинарных кавычек в выводе.

Например, чтобы показать вывод User's, вам потребуется SELECT 'User''s'.

...