Я думаю, что самое простое решение использует case
, который имеет больше гарантий порядка оценки:
SELECT a.*
FROM AGG_MATCHES m JOIN
SOURCE_A a
ON a.ID = (CASE WHEN m.AGGSRC = 'source_a' THEN TO_NUMBER(m.AGGPROJ_ID) END);
Или, еще лучше, преобразовать в строки:
SELECT a.*
FROM AGG_MATCHES m JOIN
SOURCE_A a
ON TO_CHAR(a.ID) = m.AGGPROJ_ID AND
m.AGGSRC = 'source_a' ;
Тем не менее, лучший совет - это исправить модель данных.
Возможно, лучшим решением в вашем случае является просто представление или столбец генерации:
create view v_agg_matches_a as
select . . .,
(case when regexp_like(AGGPROJ_ID, '^[0-9]+ case
может не потребоваться, если вы используете представление, но это безопаснее.
Затем используйте представление в последующих запросах.
)
then to_number(AGGPROJ_ID)
end) as AGGPROJ_ID
from agg_matches am
where m.AGGSRC = 'source_a';
case
может не потребоваться, если вы используете представление, но это безопаснее.
Затем используйте представление в последующих запросах.
У Вас есть две опции
Можно использовать TFS для инструмента миграции TFS:Щелкните здесь. это не включает стройплощадку WSS.
Или можно скопировать дб TFS и восстановление на новом экземпляре TFS, затем использовать инструмент TFSDeleteProject.exe для удаления проектов, которые Вы не хотите.
Последняя опция является самой легкой, но не объединит сохраненные проекты ни с какими существующими проектами на целевом экземпляре. Будут потеряны существующие проекты. Сайты WSS могут также быть перемещены в этот способ также. Посмотрите Как к: Резервируйте Сервер Основы Команды
В TFS 2010 вы можете отсоединить базу данных Project Collection с помощью консоли администратора TFS, а затем повторно подключить ее к другому серверу TFS. http://msdn.microsoft.com/en-us/library/dd936138.aspx