我无法让我的值在表变量中显示为空白而不是0.00。
表格设置/声明。
DECLARE @PolicyCoverages TABLE (
CoverageType varchar(100),
ScheduleLimit money,
BlanketLimit money,
Deductible money,
Premium money
)
INSERT INTO @PolicyCoverages (CoverageType, ScheduleLimit, BlanketLimit, Deductible, Premium)
SELECT 'Words for a description',
'10000.00',
'0.00',
'2500.00',
'142.50'
一旦所有数据到位(有许多选择引入数据)我想提取具体信息,如下所示。
SELECT CoverageType,
CASE WHEN ScheduleLimit < 0 THEN '' ELSE ScheduleLimit END AS ScheduleLimit,
CASE BlanketLimit WHEN '0.00' THEN '' ELSE BlanketLimit END AS BlanketLimit,
Deductible,
Premium
FROM @PolicyCoverages
WHERE (ScheduleLimit > '0.00') OR (BlanketLimit > '0.00')
我不想显示0.00我想要一个空格&#39;&#39;。我尝试过皈依者,我尝试过施法,并且两次尝试时都显示出来。
WHEN CAST(ScheduleLimit as varchar(10)) < 0 THEN ''
WHEN Schedulelilmit < 0 THEN CONVERT(varchar(10), '')
无论我尝试哪种方式,它都会以0.00
结束答案 0 :(得分:0)
使用SPACE(n)函数获取空格键。 'n'是一个整数
答案 1 :(得分:0)
如果你想要&#39;&#39;这是角色,你需要将你的钱兑换成varchar:
SELECT CoverageType,
CASE WHEN ScheduleLimit < 0 THEN '' ELSE cast(ScheduleLimit as varchar(30)) END AS ScheduleLimit,
CASE BlanketLimit WHEN 0 THEN '' ELSE cast(BlanketLimit as varchar(30)) END AS BlanketLimit,
Deductible,
Premium
FROM @PolicyCoverages
WHERE (ScheduleLimit > '0.00') OR (BlanketLimit > '0.00')
如果您不希望money
成为varchar
,则应使用NULL
代替&#39;&#39;
您无法在同一列中显示money
和char
,因此您无其他选择:或者您将所有列转换为varchar
,或保留money
但请使用NULL
代替&#39;&#39;。
答案 2 :(得分:0)
Sean Lange得到了它!显示NULL确实纠正了我的问题。前端(我无法控制)将NULL值显示为空白,因此将其设置为NULL会更正所有内容。
SELECT CoverageType,
CASE ScheduleLimit WHEN 0 THEN NULL ELSE ScheduleLimit END AS ScheduleLimit,
CASE BlanketLimit WHEN 0 THEN NULL ELSE BlanketLimit END AS BlanketLimit,
Deductible,
Premium
FROM @PolicyCoverages
WHERE (ScheduleLimit > 0) OR (BlanketLimit > 0)