我有一点问题:
void Function(VARIANT FAR* pVal)
{
VariantInit(pVal);
VariantInit(pVal->pvarVal);
pVal->vt = VT_VARIANT | VT_BYREF ;
__int64 biNewVal = // Some logic here
pVal->pvarVal->vt = VT_CY;
pVal->pvarVal->cyVal.int64 = biNewVal;
}
int _tmain(int argc, _TCHAR* argv[])
{
VARIANT var;
Function(&var);
return 0;
}
除了上面的预期结果,我还需要查看值' test1'存在,如果没有,则输出值“无”'在它的位置。我正在连接到Microsoft SQL 2012服务器。到目前为止,这是我的代码:
Table
Name: Table_test
-------
Column: test
-------
test1
test2
test3
Required Results
test | test
--------------
test1 | test2
IF EXIST ... ELSE部分不起作用。任何帮助将不胜感激。
答案 0 :(得分:0)
由于您并不关心如何从给定的表中获得所需的结果,因此可以实现您的目标的更简单的非平凡查询之一是
SELECT *
FROM
Table_test a
CROSS JOIN Table_test b
WHERE a.test = 'test1' AND b.test = 'test2'
当然,很难看出这对于一个真正的问题是如何推广的,但这更像是问题的一个特征,而不是答案。
已编辑添加:
要满足您的额外要求,您可以这样做:
SELECT
CASE
WHEN EXISTS(SELECT 1 from Table_test WHERE test = 'test1') THEN 'test1'
ELSE 'NONE'
END test,
*
FROM
Table_test
WHERE test = 'test2'
没有加入,但你不需要一个人来达到预期的效果。请特别注意CASE
表达式 - 这会产生一个值,在这种情况下是' test1'或者没有'。相反,IF
引入了一个tsql控件语句,它不会产生值。您可以在存储过程的实现中使用IF
语句,但通常不在查询中。