02. april 2007 - 09:57Der er
1 kommentar og 1 løsning
PL-SQL generere en SELECT
hi, jeg vil gerne have en PL/SQL-kode, hvor jeg har tre variabler, som enten er tom ('') eller er fyldt. Hvis en variable er fyldt, saa skal den includeres i where. hvis ikke, saa skal variablen ikke forekomme i where.
eks1: --- varCol1 = '1' varCol22 = '' varCol3 = '' --> select col1, col2, col3 from test where col1='1'
eks2: --- varCol1 = '1' varCol22 = '' varCol3 = '24' --> select col1, col2, col3 from test where col1='1' AND col3='24'
eks3: --- varCol1 = '4' varCol22 = '5' varCol3 = '24' --> select col1, col2, col3 from test where col1='4' AND col2='5' AND col3='24'
desvaerre forsaar jeg ikke en prik af PL/SQL :-( er der nogen, som kan give mig en PL/SQL-kode, som loeser denne opgave?
Hvis jeg har forstået problematikken rigtigt, så kan du vel klare dig uden pl/sql:
SELECT col1, col2, col3 FROM test WHERE col1 = nvl(varCol1, col1) AND col2 = nvl(varCol22, col2) AND col3 = nvl varCol3, col3);
eller alternativt:
SELECT col1, col2, col3 FROM test WHERE (col1 = varCol1 OR varCol1 IS NULL) AND (col2 = varCol22 OR varCol22 IS NULL) AND (col3 = varCol3 OR varCol3 IS NULL);
SELECT col1, col2, col3 FROM test WHERE col1 = nvl(varCol1, col1) AND col2 = nvl(varCol22, col2) AND col3 = nvl(varCol3, col3);
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.