2009-10-13 33 views
4

我喜歡使用SQL Server 2005模板來運行經常使用的查詢。您可以使用此語法包含在您的模板參數:SQL Server模板 - 如何逃避小於字符?

<LastName, varchar, 'Bob'> 

我都需要比小於或等於運營商< =但不幸的是在SQL Server查詢2005的模板解釋,作爲一個參數的開始。我一直無法找到一種方法來使用<(小於字符)作爲文字。

+0

你可以發佈整個查詢嗎? – kscott 2009-10-13 16:02:15

+0

是不是一個單引號'轉義字符? – pxl 2009-10-13 16:05:22

+2

+1僅用於提及SSMS查詢模板。很酷的功能,方式低估了恕我直言。 – 2009-10-13 16:36:41

回答

3

當我指定模板參數的值,這個運行對我罰款:

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

也許你沒有每個參數的「<」和「>」配對正確

編輯我見現在的問題:

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 

嘗試使 「<」 字符爲參數,像這樣:

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 

或分割線,換行似乎有所作爲:

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 
0

隨着模板

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

如果選擇(菜單)查詢>指定模板參數的值,用於替換的默認值是「的xtype < = 60」,這是正確的,並且在替代,由此產生的查詢文本是

select top 10 * from syscolumns 
where xtype <= 60 

這正是人們所期望的。換句話說,似乎並不是「<」符號需要被轉義的情況。然而,「>」,更成問題:

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 

這又是人們所期望的。所以看起來替換的默認值可能不包含「>」。