以下是我的表结构,我想验证price_list_rate字段,值应该大于零,我尝试了无符号
Version information: 4.5.4.1deb2ubuntu2.1
CREATE TABLE `price_list` (
`price_list_id` int(11) NOT NULL,
`price_list_city_id` int(11) NOT NULL,
`price_list_process_id` int(11) NOT NULL,
`price_list_product_id` int(11) NOT NULL,
`price_list_rate` float UNSIGNED NOT NULL,
`price_list_vendor_rate` int(11) NOT NULL,
`created_by` int(10) UNSIGNED NOT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_by` int(10) UNSIGNED NOT NULL,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud) MySQL中的Case语句语法: -
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
Run Code Online (Sandbox Code Playgroud)
SQL Server 2008中的Case语句语法: -
Simple CASE expression:
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
Run Code Online (Sandbox Code Playgroud)
我已经解释了差异,以便用户可以理解我在这里尝试说的内容
我在MySql中有以下代码: -
SELECT sum(case when Year=2014 or purchased=0 then 0 else TC.TOTAL_SP_COST-TC.TOTAL_CP_COST end) as EARNINGs
from TABLE TC
Run Code Online (Sandbox Code Playgroud)
如果你看得正确,case语句有2个字段(Year和purchase)
当我在MS SQL SERVER 2008中尝试相同的代码时,当我尝试在SQL SERVER中的case语句中添加2个字段时,我在"或"下面有一个红线.
SELECT sum(case (Year or purchased) when 2014 then …Run Code Online (Sandbox Code Playgroud) 我创造了一个
CONSTRAINT chk_donate CHECK credit_card_no LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
Run Code Online (Sandbox Code Playgroud)
但是使用带有字母的数字数据类型的列名'credit_card_no'的插入查询,没有错误,值为0.请帮助.