我正在使用以下脚本从Oracle生成C#中的对象,它可以正常工作。
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
,则如何修改脚本以添加(示例){{1}}属性?
答案 0 :(得分:2)
您可以使用case ... when ... else
跳过它,就像您自己想出的那样:
... ||case when A.NEXTQUESTIONID is not null then 'NextQuestionID = '||A.NEXTQUESTIONID||',' else '' end || ...
您还可以使用nvl2
功能获得更短的解决方案:
... || nvl2(A.NEXTQUESTIONID, 'NextQuestionID = '||A.NEXTQUESTIONID||',', '') || ...