How to Search values Integer column alias in a WHERE Clause
You cannot use an alias in your where clause

Without questioning any parts of the query, you could do this:

SELECT IIf(ChequeInvoicePaymentId IS NULL, 'OWN', 'PARTY') AS ChequeType, ChequeNumber, Amount  
FROM BASE_Chq
WHERE (IIf(ChequeInvoicePaymentId IS NULL, 'OWN', 'PARTY') = 'PARTY');


A better approach would be directly filtering on the IS NOT NULL:

SELECT IIf(ChequeInvoicePaymentId IS NULL, 'OWN', 'PARTY') AS ChequeType, ChequeNumber, Amount  
FROM BASE_Chq
WHERE ChequeInvoicePaymentId IS NOT NULL;


A small DB&lt;>Fiddle example



Why

The filter in the where clause can be passed to the table as a (seek) predicate before computing the IIF function in the SELECT.

More info on this processing order in an answer by Erland Sommarskog:


  You can't do that because a SELECT statement is computed in this
  order:
  
  FROM-JOIN
  WHERE
  GROUP BY
  HAVING
  SELECT
  ORDER BY
  
  So when the WHERE clause is evaluated, the aliases defined in the
  SELECT list are not defined yet. ...