пост-ГРЭС: ограничительные контрольные числа и нулевые значения

Уже есть хорошие ответы. Вот простая попытка для развлечения:

function currencyFormat(no) {
  var ar = (+no).toFixed(2).split('.');
  return [
      numberFormat(ar[0]|0),
      '.', 
      ar[1]
  ].join('');
}


function numberFormat(no) {
  var str = no + '';
  var ar = [];
  var i  = str.length -1;

  while( i >= 0 ) {
    ar.push( (str[i-2]||'') + (str[i-1]|| '')+ (str[i]|| ''));
    i= i-3;
  }
  return ar.reverse().join(',');  
}

Выполнить несколько примеров

console.log(
  currencyFormat(1),
  currencyFormat(1200),
  currencyFormat(123),
  currencyFormat(9870000),
  currencyFormat(12345),
  currencyFormat(123456.232)
)
13
задан sloth 12 June 2012 в 08:31
поделиться

2 ответа

На самом деле вам больше ничего делать не нужно. Ограничение проверки считается выполненным, если выражение проверки имеет значение true или значение null.

Ваше ограничение CHECK (y> x) будет работать, как и в вашем сценарии, потому что строка foobar не нарушит ограничение, поскольку оно оценивается как null

21
ответ дан 1 December 2019 в 22:24
поделиться

Вы можете поместить тест IS NULL в выражение CHECK, например:

CREATE TABLE mytable (
    name TEXT,
    x INTEGER,
    y INTEGER CHECK (y IS NULL OR y > x)
);

(проверено на PostgreSQL 8.4)

1
ответ дан 1 December 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: