SQL Server模板 - 如何逃避小于字符?

时间:2009-10-13 15:58:01

标签: sql-server sql-server-2005 templates ssms

我喜欢使用SQL Server 2005模板来运行常用查询。您可以使用以下语法在模板中包含参数:

<LastName, varchar, 'Bob'>

我的查询需要小于或等于运算符&lt; = ,但遗憾的是SQL Server 2005模板将其解释为参数的开头。我一直无法找到使用&lt; (小于字符)作为文字的方法。

2 个答案:

答案 0 :(得分:3)

当我指定模板参数的值时,这对我运行正常:

select * from <xyz, varchar,YourTable> WHERE ID<=1000 AND ID>=20000

也许你没有每个参数的“&lt;”和“&gt;”配对得好

编辑我现在看到了问题:

SELECT * FROM <xyz, varchar,YourTable> WHERE ID<=1000 AND ID>=20000 AND <xyz2,varchar,YourColumn> IS NOT NULL

结果:

SELECT * FROM YourTable WHERE IDYourColumn IS NOT NULL

尝试制作“&lt;”将字符转换为参数,如下所示:

SELECT * FROM <xyz, varchar,YourTable> WHERE ID<lessthan,char,<>=1000
AND ID>=20000 AND <<xyz2,varchar,YourColumn> IS NOT NULL

导致:

SELECT * FROM YourTable WHERE ID<=1000
AND ID>=20000 AND YourColumn IS NOT NULL

OR分割线条,换行符似乎有所不同:

SELECT * FROM <xyz, varchar,YourTable> WHERE ID<=1000 AND ID>=20000 
AND <xyz2,varchar,YourColumn> IS NOT NULL

结果:

SELECT * FROM YourTable WHERE ID<=1000 AND ID>=20000 
AND YourColumn IS NOT NULL

答案 1 :(得分:0)

使用模板

select top 10 * from syscolumns
where <xtype, varchar(128), xtype <= 60>

如果您选择(菜单)查询&gt;指定模板参数的值,替换的默认值为“xtype&lt; = 60”,这是正确的,并且在替换时,生成的查询文本为

select top 10 * from syscolumns
where xtype <= 60

这正是人们所期望的。换句话说,“&lt;”似乎并非如此。符号需要逃脱。但是,“&gt;”问题更多:

select top 10 * from syscolumns
where <xtype, varchar(128), xtype >= 60>

打开“指定值”对话框时,这将失败。但是,在这种情况下,可以指定

select top 10 * from syscolumns
where <xtype, varchar(128), value>

并输入

xtype >= 60

在“值”字段中进行替换。这会产生

select top 10 * from syscolumns
where xtype >= 60

这也是人们所期待的。因此,替换的默认值似乎不包含“&gt;”。