将格式编号的列检查添加到编号oracle

时间:2015-06-22 07:27:27

标签: oracle add alter

我需要在表中添加一列,检查输入的最大值是999到999,就像足球比赛得分一样。我该如何撰写这份声明?

示例:

 | Score |
 ---------
 | 1-2   |
 | 10-1  |
 |999-999|
 | 99-99 |

1 个答案:

答案 0 :(得分:0)

SQL Fiddle

Oracle 11g R2架构设置

CREATE TABLE SCORES (Score ) AS
          SELECT '1-2' FROM DUAL
UNION ALL SELECT '10-1' FROM DUAL
UNION ALL SELECT '999-999' FROM DUAL
UNION ALL SELECT '99-99' FROM DUAL
UNION ALL SELECT '1000-1000' FROM DUAL;

查询1

SELECT SCORE,
       CASE WHEN REGEXP_LIKE( SCORE, '^\d{1,3}-\d{1,3}$' )
            THEN 'Valid'
            ELSE 'Invalid'
            END AS Validity
FROM   SCORES

<强> Results

|     SCORE | VALIDITY |
|-----------|----------|
|       1-2 |    Valid |
|      10-1 |    Valid |
|   999-999 |    Valid |
|     99-99 |    Valid |
| 1000-1000 |  Invalid |