2009-07-17 23 views
0

Ich muss eine DB2-Datenbank nach einer Zeichenfolge suchen, die eine Konkatination von zwei Spalten ist. Gibt es eine Möglichkeit, die Spalten CONCAT zu verwenden, dann die kombinierte Zeichenfolge in der WHERE-Klausel zu verwenden? Ich habe gesucht, aber ich kann keine Antwort darauf finden.CONCAT und SQL

Dank

Antwort

0

Nach etwas mehr in den IBM Handbüchern Suche ich mit dieser Lösung kam, die für mich arbeitet;

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

Danke für die Hilfe

0

versuchen

select * 
from MyTable 
where Col1 concat Col2 = 'MySearchValue' 
0

So etwas wie

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

Die einfachste Lösung arbeitet, keine Notwendigkeit CONCAT() zu verwenden.

SELECT Col1 || Col2 as MyCol1 
FROM MY_TABLE 
WHERE Col1 || Col2 = 'searchvalue' 

nur aufpassen, dass die Suche wird nicht indiziert werden. Wenn Sie möchten, dass es indiziert wird, müssen Sie einen Index basierend auf einer Funktion verwenden. Dann 2 Möglichkeiten:

  1. Der DB-Engine unterstützt es (ich glaube nicht, dass DB2 tut)
  2. Do it yourself: Verwenden Sie eine zusätzliche indizierte Spalte über Trigger aktualisiert INSERT & UPDATE.