---
title: "En till smart query"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/179471-en-till-smart-query"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Simkisen"
published: "2009-07-21T12:11:43.000Z"
updated: "2009-07-22T20:22:31.000Z"
replies: 6
views: 555
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/179471-en-till-smart-query"
---

# En till smart query

## #1 — Simkisen, 2009-07-21T12:11Z

En till query, lite simplare dock.

id \| text \| key

Permalänk: https://www.webforum.nu/p/179471

## #2 — nitro2k01, 2009-07-21T14:36Z

```
SELECT e.text FROM Entity e WHERE e.key = :key XOR e.key IS NULL
```

Edit, vid närmare eftertanke kommer inte det där funka...

Permalänk: https://www.webforum.nu/p/2193593

## #3 — Simkisen, 2009-07-21T19:20Z

mm, med tanke på att båda jämförelserna kan vara true så failar det tyvärr..

Permalänk: https://www.webforum.nu/p/2193624

## #4 — Peter S, 2009-07-21T19:50Z

Jag hade kanske löst det med följande SQL:

```
SELECT e.text FROM Entity e WHERE e.key = key OR e.key IS NULL ORDER BY CASE WHEN e.text IS NOT NULL THEN 1 ELSE 2 END LIMIT 1
```

Permalänk: https://www.webforum.nu/p/2193627

## #5 — nitro2k01, 2009-07-21T20:12Z

Peter, jag satt och testade med något liknande, fast utan CASE. (Jag får för övrigt inte din case-kod att funka, ens när jag ändrar END till END CASE)
ORDER BY e.key DESC verkar funka bra.

```
SELECT e.text FROM `test_default` e 
WHERE e.stringid = 0 AND (e.key = 'tr' OR e.key IS null)
ORDER BY e.key DESC
LIMIT 1;
```

Permalänk: https://www.webforum.nu/p/2193630

## #6 — Peter S, 2009-07-22T15:14Z

Frågan är vilket DBMS ts använder, det är inte säkert att CASE existerar i den aktuella dialekten. Är det MySQL fungerar CASE och framför allt i ORDER BY.

Permalänk: https://www.webforum.nu/p/2193702

## #7 — Simkisen, 2009-07-22T20:22Z

MySQL med Toplink är det men är inte säker på att CASE funkar med JPQL dock, har inte hunnit testa än.

Permalänk: https://www.webforum.nu/p/2193718

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/179471-en-till-smart-query
