2012-12-10 24 views
0

我正在编写一个依赖于Ajax请求从数据库中检索数据的应用程序,所需的信息是在Json对象集中传递的,这意味着即使是空字段的数据库是产生一对礼/值:如何从Db中只选择不空的字段

[{"field1":"value1","field2":"value2","field3":""},{"field1":"","field2":"","field3":""}] 

如何可以从数据库中选择经由SQL避免产生和发送不必要的数据不仅空字段?

+0

如果说,对于field1,row1不是空的,但row2是空的呢? – Kaf

+0

然后第一行的对象携带一对字段1,第二行不包含。但马特惠特菲尔德点也许这是一个序列化的问题 –

回答

1

如果表中的数据为NULL,则可以选择使用的东西记录在适当喜欢

SELECT [fieldList] 
    FROM [tableName] 
WHERE [field_1] IS NOT NULL 
    OR [field_2] IS NOT NULL 
    OR [field_3] IS NOT NULL 

但是 - 如果你想省略从定义JSON用于部分空记录,例如

{"field1":"value1","field2":"value2","field3":""} 

被传送为

{"field1":"value1","field2":"value2"} 

然后,您需要通过自定义您正在使用的任何JSON序列化程序来执行此操作。

1

像这样的事情

SELECT * FROM yourtable 
WHERE LEN(valuefield) > 0