仅在查询返回行时才需要将标题添加到存储过程的结果数据集中。
尝试使用联合将列标题添加到结果数据集中,但是我只希望如果查询返回其他行,则列标题存在。
如果没有其他记录,我需要将结果设为零字节文件(无标题)。
将@myValue声明为int = 999
select
'Column One'
,'Column Two'
union all
select cast([Col1] as varchar)
,cast([Col2] as varchar)
FROM [dbo].[myTable]
where [Col1] = @myValue
and @@RowCount > 0
答案 0 :(得分:1)
对查询使用公用表表达式,因此不必重复:
with cte(c1, c2) as
(
select cast([Col1] as varchar)
,cast([Col2] as varchar)
from [dbo].[myTable]
where [Col1] = @myValue
)
select c1, c2
from
(
select c1, c2, 2 as c3
from cte
union all
select 'Column One'
,'Column Two'
, 1
where exists
(
select 1
from cte
)
) order by c3
答案 1 :(得分:0)
将相同的FROM子句和TOP 1添加到“虚拟列名称”部分。如果没有记录,它将不返回任何内容;如果有记录,则将返回一行。
android.app.RemoteServiceException: can't deliver broadcast at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1802) at
android.os.Handler.dispatchMessage(Handler.java:102) at
android.os.Looper.loop(Looper.java:154) at
android.app.ActivityThread.main(ActivityThread.java:6682) at
java.lang.reflect.Method.invoke(Native Method) at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)