如何在sql server 2008中的存储过程中使用if比较两个字符串?

Vis*_*hal 13 sql t-sql sql-server string-comparison sql-server-2008

我想做这样的事情:

declare @temp as varchar
    set @temp='Measure'

if(@temp == 'Measure')
   Select Measure from Measuretable
else
   Select OtherMeasure from Measuretable
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 21

两件事情:

  1. 只需要一(1)个等号来评估
  2. 需要在VARCHAR上指定长度 - 默认值是单个字符.

使用:

DECLARE @temp VARCHAR(10)
    SET @temp = 'm'

IF @temp = 'm'
  SELECT 'yes'
ELSE
  SELECT 'no'
Run Code Online (Sandbox Code Playgroud)

VARCHAR(10)表示VARCHAR最多可容纳10个字符.更多行为的例子 -

DECLARE @temp VARCHAR
    SET @temp = 'm'

IF @temp = 'm'
  SELECT 'yes'
ELSE
  SELECT 'no'
Run Code Online (Sandbox Code Playgroud)

...将返回"是"

DECLARE @temp VARCHAR
    SET @temp = 'mtest'

IF @temp = 'm'
  SELECT 'yes'
ELSE
  SELECT 'no'
Run Code Online (Sandbox Code Playgroud)

......将返回"否".