SORU
17 Ocak 2010, Pazar


Nasıl bir dize bir tamsayı döküm ve PostgreSQL ile dökme hata durumunda 0 var mı?

İsim olarak no sütun ile bir tablo var. Veri tamsayı olması gerekiyordu ve sorguda iteger yazın buna ihtiyacım var. Bazı değerler boş dizeler. Aşağıdaki:

SELECT myfield::integer FROM mytable

verimleri 4**

Nasıl bir döküm sorgu ve isim olarak döküm sırasında hata durumunda 0 alabilir miyim?

CEVAP
24 Mayıs 2010, PAZARTESİ


Sadece benzer bir sorun ile kendimi Güreşi yapıyordum, ama bir işlevi yükü istemedi. Aşağıdaki sorgu ile geldi:

SELECT myfield::integer FROM mytable WHERE myfield ~ E'^\\d $';

İsim olmayan tamsayılar herhangi bir isabet elde edemezsin. onun ifade kısayolları ::tam sayı atama. Ayrıca BOŞ değerler (regexp maç vermiyorlar) işler.

Eğer seçme yerine sıfır istiyorsanız, büyük bir deyim olmalı

SELECT CASE WHEN myfield~E'^\\d $' THEN myfield::integer ELSE 0 END FROM mytable;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fullscreen

    Fullscreen

    23 Mart 2006
  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009