jilt3d
jilt3d

Reputation: 4034

SELECT values from database based on CASEs

I have a database table Tb1 with n columns and m count of rows.

Tb1
========================================
field_0... field_k... field_p... field_n

Here is the pseudo-code that I need to express in SQL

if(count(select distinct Tb1.field_k) > 1) return "string_literal"
else return Tb1.field_p

The result set should have m count of rows.

Upvotes: 0

Views: 79

Answers (1)

gbn
gbn

Reputation: 432260

SELECT
    CASE
        WHEN x.testcase > 1 THEN "string_literal"
        ELSE Tb1.field_p
    END AS SomeCol
FROM
   Tb1
   CROSS JOIN
   (
   SELECT COUNT (DISTINCT Tb1.field_k) AS testcase
   FROM Tb1
   ) x

Notes:

  • Tb1.field_p must be a compatible datatype to "string_literal"

Upvotes: 2

Related Questions