Can the following query be modified to return all records if the ? is null?
SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = ?;
Try this:
SELECT *
FROM MY_TABLE
WHERE @parameter IS NULL OR NAME = @parameter;
You can also use functions IFNULL,COALESCE,NVL,ISNULL to check null value. It depends on your RDBMS.
MySQL:
SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = IFNULL(?,NAME);
or
SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = COALESCE(?,NAME);
ORACLE:
SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = NVL(?,NAME);
SQL Server / SYBASE:
SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = ISNULL(?,NAME);
NAME. But for non-nullable columns this is the way to go =) (EDIT: at least not in SQL Server)