11. oktober 2004 - 13:18Der er
7 kommentarer og 1 løsning
Brug af LENGHT i SQL query
Hej
Jeg arbejder med at system der benytter CPR numre.
I en export fra et andet system er nogle cpr numre blevet forkortet i det at foranstillede 0'er (nuller) er fjernede så en del CPR numre kun indeholder 9 cifre.
Hvor kan jeg lave følgende query
SELECT * FROM employees WHERE lenght(cpr) < 10
eller lidt mere udbygget
UPDATE employees SET cpr = '0' + cpr WHERE employee_id = (SELECT employee_id FROM employees WHERE lenght(cpr) < 10
UPDATE employees SET employee_cpr = '0' + employee_cpr WHERE (employee_id = (SELECT employee_id FROM employees WHERE (LEN(employee_cpr) < 10)))
hvilket resulterer i følgende fejl:
[Microsoft][ODBC SQL Server Driver][SQL Server]Subquery returned more then 1 value. This i not permitted when the subquery follows =, !=, <, <=, >, >= or when the subquery is used as an expression.
jensgram har da vist ret, blot har han ikke kaldt tingene det rigtige: UPDATE employees SET employee_cpr = '0' + employee_cpr WHERE LEN(employee_cpr) < 10
- men dette ville reparere din sætning (IN i stedet for =):
UPDATE employees SET employee_cpr = '0' + employee_cpr WHERE employee_id IN (SELECT employee_id FROM employees WHERE LEN(employee_cpr) < 10)
ldanielsen > Ja, den var smuttet. Godt set, mester ;)
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.