【发布时间】:2018-11-25 21:45:50
【问题描述】:
我的桌子上有这个挑剔的列(因为其余的与问题无关)。
ID | Generic Name
-----+---------------
001 | Cetirizine
002 | Cetirizine
003 |
004 | Paracetamol
我希望我的组合框仅显示单个条目 Cetirizine(或任何已重复的数据)并且没有空的通用名称(某些数据没有通用名称)。
我试过了:
select
Item_GenName
from
ItemMasterlistTable
where
nullif(convert(varchar, Item_GenName), '') is not null
但它只实现了无空数据部分。
我尝试过使用DISTINCT,但它不起作用,有人建议JOIN,但我认为它不起作用,因为我只使用了一张桌子。
我也试过了:
SELECT
MIN(Item_ID) AS Item_ID, Item_GenName
FROM
ItemMasterlistTable
GROUP BY
Item_GenName
但总是有错误:
text、ntext 和 image 数据类型不能进行比较或排序,除非使用 IS NULL 或 LIKE 运算符。
【问题讨论】:
-
如果添加脚本(表格和示例数据)和预期输出会更好
-
要在 linq 中获取非重复项,您可以使用 GroupBy,然后从每个组中获取第一项。 Null 您需要更改该值不等于 Db.Null。
-
ntext、text和image数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)、varchar(max)和varbinary(max)。 See details here
标签: c# sql-server