我有一堆與是/否值的列。這是由它們的長度爲3認定:如何將查詢的結果用作另一個WHERE列?
SELECT colname
FROM syscat.columns
WHERE tabname='CL'
AND length = 3
我想指望所有對任何這些列的是行。
所以通常我會做:
SELECT COUNT(*)
FROM CL
WHERE c1=yes or c2=yes or c3=yes #...
但我不知道是否有另一個查詢的WHERE子句中應用這些列名的方式。就像這樣:
SELECT COUNT(sub.*)
FROM (
SELECT colname
FROM syscat.columns
WHERE tabname='CL'
AND length = 3
) sub
WHERE [sub] = yes #How can I say "The VALUE of each column name from the subquery"
我在找的是一個行數,其中任何3長度的列都有'是'。
注意:我在bluemix上使用db2,但任何關於此的一般信息都會有所幫助。
您的「正常」查詢是要走的路。您可以使用「syscat.columns」中的信息執行[**動態查詢**](https://stackoverflow.com/questions/6785302/how-to-execute-an-sql-string-in-db2)你在問什麼? –