我的表field1和field2中有两列。
在我想要检查field2是否为NULL的地方。
如果为NULL,那么我的位置将如下所示
其中field1 =' myvalue'
如果它不是NULL,我想连接field1和field2中的值,中间有一个+。喜欢这个
where field1 + field2 =' myvalue'
我试过这样的事,但我没有工作。
WHERE CASE field2 IS NOT NULL
THEN field1+field2
ELSE field1
END = 'myvalue'
例如,field2有一个值,比方说7252而field1有7311,那么它必须看起来像这样。
WHERE 7311+7252 = 'myvalue'
并且如果field2为空
WHERE 7311 = 'myvalue'.
有人能帮助我吗? :)
答案 0 :(得分:1)
您可以将此案例转换为两种情况,并使用OR
:
SELECT * FROM YourTable t
WHERE (t.field2 IS NULL AND t.field1 = 'myvalue')
OR (t.field2 IS NOT NULL AND field1 + field2 = 'myvalue')
或者您可以使用CASE EXPRESSION
:
SELECT * FROM YourTable t
WHERE 'myvalue' = CASE WHEN t.field2 IS NULL THEN t.field1
ELSE field1+field2
END
答案 1 :(得分:1)
您可以使用./print.pl <1.txt 2.txt
,如下所示:
COALESCE
例如
SELECT
*
FROM
Tbl
WHERE
COALESCE(field1 + field2, field1) = 'Your Value'
答案 2 :(得分:0)
请尝试:field1 + ISNULL(field2,&#39;&#39;)=&#39; myvalue&#39;
答案 3 :(得分:0)
如果不使用CASE
语句是一个选项,您可以尝试这样的事情:
WHERE
(NOT field2 IS NULL AND field1 + field2 = 'myvalue')
OR (field2 IS NULL AND field1 = 'myvalue')
答案 4 :(得分:0)
我假设你的t.field1和t.field2是数值数据类型。
SELECT *
FROM YourTable t
WHERE t.field1 + ISNULL(field2, 0) = 'myvalue'