我有以下动态查询,它使用UDF针对产品为每个account_id
创建一个透视表。我需要在执行UDF之后添加空格,具体取决于与特定表匹配的DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.A_NAME)
FROM TEST_11 c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT account_id, ' + @cols + ' INTO TEST_DETAIL from
(
select account_id
, dbo.make_table(apple,ball,cat,dog) AS newvalue
,a_name
from test_sample
) x
pivot
(
MAX(newvalue)
for a_name in (' + @cols + ')
) p '
execute(@query)
。这完全正常,并返回图像中的第二个表,我只想添加一些条件,它检查其他表中的帐户ID,然后从UDF输出空格,例如 - 帐户ID in如果pivot中的account_id匹配test_oncontract中存在的id,那么pivot将匹配test_rev中存在的id然后匹配2个空格
make_table
下面的图片显示了 when exists (select account_id from tbl_noR6)
then
dbo.make_sam_indicator112(apple,ball,cat,dog) + space(2) + ''cc''
when exists (select account_id from tbl_acct)
then
dbo.make_sam_indicator112(apple,ball,cat,dog) + space(3) + ''pp''
when exists (select account_id from test_NA)
then
dbo.make_sam_indicator112(apple,ball,cat,dog) + space(4) + ''no''
end) as newvalue,
a_name
from CRS_PRODLINE
) x
pivot
(
MAX(newvalue)
for a_name in (' + @cols + ')
) p '
udf如何将第一个表格转换成第二个表格,只是从第一个表格的每个列名称中获取首字母
我能够调用我的函数并使用select添加所需的空格。 但case语句只执行第一个条件,我无法从其他表中获取记录。如何根据条件而不是case语句来实现取决于所有四个条件的数据。以下是我目前使用的代码:
DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct',' + QUOTENAME(c.a_name) 来自CRS_PRODLINE c FOR XML PATH(''),TYPE ).value('。',' NVARCHAR(MAX)') ,1,1,'&#39)
设置@query =' SELECT account_id,' + @cols +' INTO TEST_DETAIL来自 (选择account_id, (案件 何时存在(从[dbo]中选择account_id。[TEST_R6]) 然后 dbo.make_sam_indicator112(苹果,球,猫,狗)+空格(1)+'' rr''
<p-calendar showAnim="slideDown"
id="calendar"
[showIcon]="true
[(ngModel)]="myDate"
(blur)="onBlurMethod($event)">
</p-calendar>
执行(@query)