Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何连接两列,然后在SQL中的WHERE子句中使用组合字符串?_C#_.net_Sql_Db2 - Fatal编程技术网

C# 如何连接两列,然后在SQL中的WHERE子句中使用组合字符串?

C# 如何连接两列,然后在SQL中的WHERE子句中使用组合字符串?,c#,.net,sql,db2,C#,.net,Sql,Db2,我必须在DB2数据库中搜索两列串联的字符串。有没有办法在WHERE子句中使用组合字符串来合并列?试试看 select * from MyTable where Col1 concat Col2 = 'MySearchValue' 差不多 SELECT *, CONCAT(column1, column2) AS s FROM table WHERE column3 = s 在IBM手册中进行了更多的搜索之后,我找到了这个适合我的解决方案 Select Col1 || Col2 as My

我必须在DB2数据库中搜索两列串联的字符串。有没有办法在WHERE子句中使用组合字符串来合并列?

试试看

select * 
from MyTable
where Col1 concat Col2 = 'MySearchValue'
差不多

SELECT *, CONCAT(column1, column2) AS s FROM table WHERE column3 = s

在IBM手册中进行了更多的搜索之后,我找到了这个适合我的解决方案

Select
 Col1 || Col2 as MyCol1
Where CONCAT(RTRIM(Col1),(RTRIM(Col2)) = 'searchvalue'

感谢您的帮助

最简单的解决方案有效,无需使用
CONCAT()

请注意,搜索将不会被索引。如果希望对其进行索引,则必须使用基于函数的索引。然后是两种可能性:

  • DB引擎支持它(我认为DB2不支持)
  • 自己动手:在插入和更新时使用通过触发器更新的额外索引列
  •  SELECT Col1 || Col2 as MyCol1 
     FROM MY_TABLE
     WHERE Col1 || Col2 = 'searchvalue'