Я использую следующий скрипт для создания объектов в C# из Oracle, и он работает нормально.Как пропускать вывод столбца на основе значения?
select 'yield return new Question { QuestionID = '||Q.questionid||', Qcode = "'||Q.Qcode||'", QuestionDescription = "'||Q.questiondescription||'", QuestionText = "'||Q.questiontext||'", QuestionCategoryId = '||Q.questioncategoryid||', QuestionTypeID = '||Q.QuestionTypeID||', IsThunderheadOnly = '|| case q.isthunderheadonly when 0 then 'false' else 'true' end ||', DisplayOrder = '||q.displayorder||' };'
from QUESTION q
where
questioncategoryid = 7
Однако снова и снова я бегу в проблему, когда я не ||
может добавить столбцы с NULL
значениями и решение этой точки было добавление этих свойств вручную, что было нормально при выборе до 20 записей.
Теперь я столкнулся с ситуацией, когда вам нужно выбрать сотни записей, и их добавление вручную потребует значительного количества времени.
Как я могу изменить скрипт, чтобы добавить (пример) MaxValue
свойство, если столбец в таблице NOT NULL
, но пропустите его, если это так?
понял это сам с утверждением Case. :) '' new Answer {DisplayOrder = '|| A.DISPLAYORDER ||', Text = "'|| A.TEXT ||'" '|| CASE, КОГДА A.NEXTQUESTIONID не является NULL THEN', NextQuestionID = '| | A.NEXTQUESTIONID ELSE '' END || ' } ' 'не могли бы вы поместить его в свой ответ. –
@ LIUFA сделано. Но, возможно, функция nvl2 выглядит лучше для вас;) – UniversE
Я использую nvl2, его просто было стыдно выбрасывать мое собственное решение, когда оно было уже сделано, когда я пришел сюда, и ответить себе, когда ответ уже был здесь. были неправы. :) –