有这样一个需求:
我要删除一个监测点编号如101.之前需要查询这个测点是否被其它的关系表中所使用个,如果使用则不允许删除。
表A
id 测点1 测点2 测点3 测点4 测点5 ...测点10 时间
1 103 204 101 201 104 .... 2013-8-8 10:0:0
.. ... ... .... ... .. ....
此时我根据条件查询 表A中 id=1记录符合条件(第一条),然后如何将测点1-10所有列的值是否有101的测点,如果有则不允许删除。 如果采用对应的测点如测点3有NULL的情况 怎么判断?
如何判断??? 除了一个一个列 比较的办法?
------解决方案--------------------
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (id int,测点1 int,测点2 int,测点3 int,测点4 int,测点5 int,时间 datetime)
insert into [TB]
select 1,103,204,101,201,101,'2013-8-8 10:0:0'
select * from [TB]
SELECT CASE WHEN LEN(CONVERT(VARCHAR, 测点1) + CONVERT(VARCHAR, 测点2)
+ CONVERT(VARCHAR, 测点3) + CONVERT(VARCHAR, 测点4)
+ CONVERT(VARCHAR, 测点5)) - LEN(REPLACE(CONVERT(VARCHAR, 测点1)
+ CONVERT(VARCHAR, 测点2)
+ CONVERT(VARCHAR, 测点3)