Sql 如何选择/计算表中存储的列表达式

Sql 如何选择/计算表中存储的列表达式,sql,Sql,在我的一个项目中执行动态SQL有一个问题 我只想从表中提取一列,该列表达式存储在表中 例如 Id first_name last_name Full_name 1 X Y Case When First_name = 'x' then first_name+Last_name Else last_name end 当我使用 SELECT id,first_name,last_name,full_name 我期待着这样的结果 Id first_name last_name Full_name

在我的一个项目中执行动态SQL有一个问题

我只想从表中提取一列,该列表达式存储在表中

例如

Id first_name last_name Full_name
1 X Y

Case When First_name = 'x' then first_name+Last_name Else last_name end
当我使用

SELECT id,first_name,last_name,full_name
我期待着这样的结果

Id first_name last_name Full_name
1 X Y 'XX'
但下面是我得到的答案

Id first_name last_name Full_name
1 X Y Case When First_name = 'x' then first_name+Last_name Else last_name end
实际上,我使用动态查询为该列的每一行计算表达式,以实现通用框架,避免每次更改SPs

你能帮我解决这个案子吗

请找到我的实际查询

SELECT1 as [BATCH_ID],src.[SRC_REF_ID] as [SRC_REF_ID],dq.[XREF_DQ_ID] as 
[ID],dq.[DQ_CHECK_EXPRESSION] as [IS_DQ_PASSED],GETDATE() as 
[CREATED_DATE_TIME],'System' as [CREATED_USER] FROM  [SRC] src WITH (NOLOCK)
INNER JOIN [DQ] dq WITH (NOLOCK)ON  src.customer    =   DQ.customer
列[DQ_CHECK_EXPRESSION]的值为'CASE WHEN ISNULL(src.REQS_ID',)='',然后为'Y'或'N'结束' 谢谢
GopiK

看起来您的查询在输出中以文本字符串结束。你能和我们分享实际的代码吗?谢谢你的帮助。选择1作为[BATCH_ID],src.[src_REF_ID]作为[src_REF_ID],dq.[XREF_dq_ID]作为[ID],dq.[dq_CHECK_EXPRESSION]作为[IS_dq_PASSED],GETDATE()作为[CREATED_DATE_TIME],系统作为[CREATED_USER],从[src]src与(NOLOCK)内部连接[dq]dq与(NOLOCK)在src上。customer=dq.customer列[dq_CHECK]将值设置为'CASE WHEN ISNULL(src.REQS_ID',)='',然后设置为'Y'或'N'END'。请将此设置为您的问题,格式为代码。