كيفية إخراج منطقية في T-SQL استنادا إلى محتوى عمود ؟
-
03-07-2019 - |
سؤال
أنا قدمت وجهة نظر مجردة أعمدة جداول مختلفة و ما قبل التصفية ما قبل فرزها.هناك عمود واحد مضمونها أنا لا أهتم ولكن أريد أن أعرف ما إذا كان المحتوى هو باطل أو لا.لذلك من وجهة نظري يجب أن يمر اسم مستعار باسم "صحيح"في حالة قيمة هذا العمود المحدد ليست فارغة و "كاذبة"في حالة قيمة باطل.
كيف يمكن تحديد هذه منطقية مع T-SQL ؟
المحلول
لديك لاستخدام الحالة بيان هذا:
SELECT CASE WHEN columnName IS NULL THEN 'false' ELSE 'true' END FROM tableName;
نصائح أخرى
أو يمكنك أن تفعل مثل هذا:
SELECT RealColumn, CAST(0 AS bit) AS FakeBitColumn FROM tblTable
إذا كنت في حاجة إلى الإخراج كما منطقية
CAST(CASE WHEN colName IS NULL THEN 0 ELSE 1 END as BIT) aIsBooked
عمود في الرأي يمكنك استخدام شيء من هذا القبيل
CASE WHEN ColumnName is not null THEN 'True' ELSE 'False' END
أو في بيان
SELECT
s.ID,
s.[Name],
CASE WHEN s.AchievedDate is not null THEN 'True' ELSE 'False' END [IsAchieved]
FROM Schools s
أو لمزيد من المعالجة بعد ذلك أنا شخصيا استخدام
SELECT
s.ID,
s.[Name],
CASE WHEN s.AchievedDate is not null THEN 1 ELSE 0 END [IsAchieved]
FROM Schools s
لدي مشكلة مشابهة حيث أردت عرض للعودة منطقية نوع العمود على أساس إذا الفعلي عمود فارغة أم لا.أنا إنشاء دالة معرفة من قبل المستخدم مثل ذلك:
CREATE FUNCTION IsDatePopulated(@DateColumn as datetime)
RETURNS bit
AS
BEGIN
DECLARE @ReturnBit bit;
SELECT @ReturnBit =
CASE WHEN @DateColumn IS NULL
THEN 0
ELSE 1
END
RETURN @ReturnBit
END
ثم عرض بأنني خلقت يعود قليلا العمود بدلا من عدد صحيح.
CREATE VIEW testView
AS
SELECT dbo.IsDatePopulated(DateDeleted) as [IsDeleted]
FROM Company
طلبت منطقية ، والتي نسميها بت في t-sql.
إجابات أخرى إما منحك varchar 'true' و 'false' أو 1 و 0.'صحيح' و 'false' من الواضح أن varchar لا منطقية.وأعتقد 1 و 0 من شأنه أن يلقي صحيحا ، لكنه بالتأكيد ليس قليلا.هذا قد يبدو أحمق من الصعب إرضاءه ، ولكن أنواع هذه المسألة في كثير من الأحيان.
للحصول على فعلية بت القيمة ، عليك أن يلقي الإخراج الخاص بك صراحة مثل:
select case when tableName.columnName IS NULL then cast(0 as bit) else cast(1
as bit) END as ColumnLabel from tableName