sql >> Databáze >  >> RDS >> Sqlserver

Získání boolean z porovnání dat v t-sql select

Ne přímo. Musíte použít CASE, CAST znamená, že je klientským kódem interpretován jako booleovský

SELECT
    CAST(CASE WHEN expiry < getdate() THEN 1 ELSE 0 END AS bit) AS Expired
FROM
    MyTable WHERE (ID = 1)

Jiné řešení, kde se očekává jeden nebo nula řádků:

SELECT
    CAST(COUNT(*) AS bit) AS Expired   
FROM
    MyTable
WHERE
    ID = 1 AND expiry < getdate() 


  1. neplatný odkaz na položku klauzule FROM pro tabulku v dotazu Postgres

  2. Jak vytvořit index na poli JSON v Postgresu?

  3. Dynamicky definovat vracející se typy řádků na základě předané dané tabulky v plpgsql?

  4. PL/SQL:převést explicitní kurzor na referenční kurzor?